![:idea:](http://vse.kz/public/style_emoticons/default/weep.gif)
![Фотография](https://vse.kz/uploads/av-48213.jpg?_r=0)
Вопрос по AJAXнаверное...
#1
Отправлено 23.07.2007, 11:24:01
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
![:idea:](http://vse.kz/public/style_emoticons/default/weep.gif)
#2
Отправлено 23.07.2007, 11:46:22
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
#3
Отправлено 23.07.2007, 13:49:58
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
это так, для начинающих )))
на самом деле просто, аяксов лезете на определенную страницу, она генерит текстовик далее этот текстовик обрабатываете и генерите html код
вроде ничего сложного
#4
Отправлено 23.07.2007, 13:53:52
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
#7
Отправлено 25.07.2007, 23:03:40
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
вариантов есть несколько. но, в первую очередь, советую вам целиком и полностью отказаться от использования евалов, как кое-кто в этой теме посоветовал.
итак, проблему можно решить следующим образом:
1) при генерации страницы - генерить Жабаскрипт объект состоящий из двух массивов:
первый массив - ID страны и ее название
второй массив - индекс каждого элемента массива соответствует ID страны, а непосредственно элемент массива - массив пар ID города + его название
на событие onChange выпадающего списка с названиями стран крепится изменение списка городов
один из минусов данного варианта - городов в Мире достаточно много и сразу грузить весь список довольно "тяжело"
2) копать в сторону jQuery. Используя эту библиотеку можно значительно ускорить разработку кросс-браузерных приложений. В сети существует достаточное число готовых скриптов для решения самых разнообразных задач
#9
Отправлено 28.07.2007, 09:22:33
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
согласенгородов в Мире достаточно много и сразу грузить весь список довольно "тяжело"
![:)](http://vse.kz/public/style_emoticons/default/smile.gif)
Мне это не для регистрации пользователей.или сделай топ20 (10) - стран где больше всего зарегистрировано.. + "другие страны" если не будет в списке юзер выберет ее, там уже все остальные страны
Вобщем оказалось что ajax это такая простая вещь
![:laugh:](http://vse.kz/public/style_emoticons/default/rotate.gif)
просто очень страшное это слово - xmlhttprequest. Менюшку я сделал, а вот появилась другая проблема. Когда выбрано значение в первом меню, пользователь пока ждет вторую, ничего не видит. То есть должно быть какое нибудь анимация чтобы посетитель знал что это не тупик, а загрузка...
Я уже говорил что в js не очень, попробовал вот это
function loading() { if (xmlHttp.readyState>0 && xmlHttp.readyState<4 { document.getElementById("goroda").write="loading..." } }не получилось. Что посоветуете? В коде я хотел писать текст loading пока данные не пришли с сервера. Еще лучше было бы конечно анимированное изображение вставить, и оно у меня даже есть, только не знаю как вставить.
Их больше 200ну... нафиг все страны? =) их больше 100...
![:super:](http://vse.kz/public/style_emoticons/default/smirk.gif)
#10
Отправлено 29.07.2007, 04:07:46
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
код Javascript
var xmlHttp function showSubctg(str) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser doesnt support ajax") return } var url="goroda.php" url=url+"?strany="+str url=url+"&goroda=" var strany = document.getElementById("strany").value; xmlHttp.open("GET",url + escape(strany),true) xmlHttp.onreadystatechange=stateChanged xmlHttp.send(null) } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { document.getElementById("goroda").innerHTML=xmlHttp.responseText } } function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { //Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
вот пхп
код PHP
<?php require_once("db.php"); $strany=$_GET["strany"]; $sql="SELECT * FROM geo WHERE strany = '".$strany."'"; $result = mysql_query($sql); echo "<select name=goroda>"; while($row = mysql_fetch_array($result)) { echo "<option value=$row[goroda]>$row[goroda]</option>"; } echo "</select>"; ?>
Вопрос:
что не так с совместимостью с фф и оперой?
![:rolleyes:](http://vse.kz/public/style_emoticons/default/spy.gif)
#12
Отправлено 29.07.2007, 22:30:17
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
Возможно, но только не в основных браузерах.getElementById - поддержка не во всех браузерах
<html> <head> <script> function testGetElementById() { alert(document.getElementById('tst').value); } </script> </head> <body onload="testGetElementById()"> <input id="tst" type="hidden" value="getElementById works"/> </body> </html>
#13
Отправлено 29.07.2007, 22:44:14
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
советую использовать
http://www.prototypejs.org
а в будущем можно и YUI использовать.
#15
Отправлено 29.07.2007, 22:55:38
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
Хорошая идея, сразу же отбивает желание программировать велосипеды.как вариант, чтобы избавиться от кроссплатформенных проблем,
советую использовать
http://www.prototypejs.org
ИМХО, YUI ф топкуа в будущем можно и YUI использовать.
Пример?имелось в виду, что в одних используется
document.all.getElementById
и в других
document.getElementById
#16
Отправлено 29.07.2007, 23:04:48
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
ИМХО, YUI ф топку
ну как вариант http://script.aculo.us
Пример? Вот убей не помню где как и что, использую prototype и не заморачиваюсь
#17
Отправлено 29.07.2007, 23:24:02
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
Очень хорошая библиотека.
ИМХО, YUI ф топку
ну как вариант http://script.aculo.us
#18
Отправлено 30.07.2007, 14:11:58
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0