Select, option + AJAX

Тема в разделе "Другие языки", создана пользователем farm, 26 май 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. farm

    farm

    Регистр.:
    8 июн 2006
    Сообщения:
    536
    Симпатии:
    105
    Хочу реализовать такую вещь. Есть выпадающий список выбора страны
    PHP:
    <SELECT NAME="country">
    <
    OPTION VALUE="1">Россия
    <OPTION VALUE="2">Украина
    <OPTION VALUE="3">Белоруссия
    </SELECT>
    Как сделать на аяксе чтобы например при выборе "Россия" загружались в выпадающий список расположеный ниже, только Росийские города. Ну и т.д, т.е для каждой страны подгружался бы соответствующий список городов.
     
  2. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    jQuery 1.3.2
    Код:
    $(document).ready(function(){
    	$("#selectCountry").bind("change", function(){
    		changeCity($(this).attr("value"));	
    	});
    });
    
    function changeCity(idCountry){
    	$.post(
    		'./selectFromDB.php',
    		{
    			id: idCountry
    		},
    		function(data){
    			$("div#citySelector").empty();
    			$("div#citySelector").append(data);
    		}
    	);
    }
    
    HTML:
    
    <SELECT ID="selectCountry" NAME="country">
    <OPTION VALUE="1">Россия
    <OPTION VALUE="2">Украина
    <OPTION VALUE="3">Белоруссия
    </SELECT>  
    
    <div id="citySelector"></div>
    
     
    MSW нравится это.
  3. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    к сожалению с аяксом не знаком.. а хотелосьбы, но не получается с ним разобраться..
    моглибы подсказать как реализовать автоматическое обновление содержимого div

    HTML:
    		<td><div style="margin: 2px; height: 260px; overflow:auto;">
    		<?php $count = count($this->loopStack["shoutBoxMessages"]); foreach($this->loopStack["shoutBoxMessages"] as $key => $row) { ?> 
    		<?php echo $row["time"]; ?> <b><?php echo $row["username"]; ?></b>: <?php echo $row["message"]; ?><br />
    		 <?php } ?></div>
    		</td>
    сам запрос в БД выглядит примерно следующим образом, специфический под конкретный скрипт:
    PHP:
            $result Core::getQuery()->select("chat c", array("c.time""c.message""u.username""g.usergroupid"), "LEFT JOIN ".PREFIX."user u ON (u.userid = c.userid) LEFT JOIN ".PREFIX."user2group g ON (g.userid = u.userid)""u.userid > '0'""time DESC""25");
            while(
    $row Core::getDB()->fetch($result))
            {
                
    $row["time"] = date("[H:i:s]"$row["time"]); 
                
    $messages[] = $row;
            }
     
  4. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    PHP:
    <td><div id="myDiv" style="margin: 2px; height: 260px; overflow:auto;">
            <?php $count count($this->loopStack["shoutBoxMessages"]); foreach($this->loopStack["shoutBoxMessages"] as $key => $row) { ?> 
            <?php echo $row["time"]; ?> <b><?php echo $row["username"]; ?></b>: <?php echo $row["message"]; ?><br />
             <?php ?></div>
            </td>
    этот код так на месте и остается, для генерирования начального состояния, единственное добавляешь id="myDiv" - обрати на это внимание

    теперь делаешь ЛЮБОЙ php с тем, что надо поместить в DIV
    PHP:
    echo "новый тексти ла-лы-ла-лы<br>";
    echo 
    "something else from DB etc...";
    и собственно кусок на jQuery
    HTML:
    
    
    <script>
    function update_Div(){
       $.post('/phpScript.php', function(data){
            $("#myDiv").empty();
            $("#myDiv").append(data);
       });
    }
    $(document).ready(function(){
        SetInterval("update_Div()", 10000);
    });
    
    </script>
    
    теперь каждый 10 сек будет запускаться функция, которая запрашивает php файл в котором и собирается контент....
     
    MSW нравится это.
  5. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    ругается на строчку - SetInterval("update_Div()", 10000);

    Ошибка: SetInterval is not defined
     
  6. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    sorry
    правильно будет setInterval
     
    MSW нравится это.
  7. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    уже не ругается, но к сожалению не работает :(

    может из-а того что вместо phpScript.php - я прописал путь к самому пхп где идёт запрос в бд и вся осталюная обработка?
     
  8. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    вряд ли....смотри, главное чтобы в php скрипте не только запрос был но и вывод стандартный...
    echo
    print
    и т д

    и иногда setInterval работает криво....но редко ;)
     
    MSW нравится это.
  9. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
    да, обновляет)) но не хочет делать запрос в бд...
    а вместо этого почемуто отображает аж стартовую страницу...

    после загрузки страницы всё как положено:
    Снимок.png

    а через пару секунд вот так:
    Снимок-1.png
     
  10. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js&downloadBtn=
    тебе сюда )) совсем забыл что надо ж исчо frameworks jQuery +))
     
    MSW нравится это.
Статус темы:
Закрыта.