Select, option + AJAX

Статус
В этой теме нельзя размещать новые ответы.

farm

Постоялец
Регистрация
7 Июн 2006
Сообщения
536
Реакции
115
Хочу реализовать такую вещь. Есть выпадающий список выбора страны
PHP:
<SELECT NAME="country">
<OPTION VALUE="1">Россия
<OPTION VALUE="2">Украина
<OPTION VALUE="3">Белоруссия
</SELECT>
Как сделать на аяксе чтобы например при выборе "Россия" загружались в выпадающий список расположеный ниже, только Росийские города. Ну и т.д, т.е для каждой страны подгружался бы соответствующий список городов.
 
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
к сожалению с аяксом не знаком.. а хотелосьбы, но не получается с ним разобраться..
моглибы подсказать как реализовать автоматическое обновление содержимого 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;
		}
 
к сожалению с аяксом не знаком.. а хотелосьбы, но не получается с ним разобраться..
моглибы подсказать как реализовать автоматическое обновление содержимого 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;
		}

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
ругается на строчку - SetInterval("update_Div()", 10000);

Ошибка: SetInterval is not defined
 
уже не ругается, но к сожалению не работает :(

может из-а того что вместо phpScript.php - я прописал путь к самому пхп где идёт запрос в бд и вся осталюная обработка?
 
уже не ругается, но к сожалению не работает :(
может из-а того что вместо phpScript.php - я прописал путь к самому пхп где идёт запрос в бд и вся осталюная обработка?
вряд ли....смотри, главное чтобы в php скрипте не только запрос был но и вывод стандартный...
echo
print
и т д

и иногда setInterval работает криво....но редко ;)
 
  • Нравится
Реакции: MSW
да, обновляет)) но не хочет делать запрос в бд...
а вместо этого почемуто отображает аж стартовую страницу...

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

а через пару секунд вот так:
Снимок-1.png
 
да, обновляет)) но не хочет делать запрос в бд...
а вместо этого почемуто отображает аж стартовую страницу...
после загрузки страницы всё как положено:
Посмотреть вложение 24387
а через пару секунд вот так:
Посмотреть вложение 24388
Для просмотра ссылки Войди или Зарегистрируйся
тебе сюда )) совсем забыл что надо ж исчо frameworks jQuery +))
 
  • Нравится
Реакции: MSW
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху