Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Асинхронност данных.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
garvey
Отправлено: 26 Мая, 2010 - 18:48:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




Добрый день.
Такая задача: есть 3 комбобокса. Нужно сделать, чтобы при определенном значении верхнего комбобокса, в среднем были соответствующие значения. И в соответствии со средним, в нижнем были свои значения.
Допустим в верхнем есть (Европа, Азия...). Выбираем Европу, в среднем появляется список (Германия, Англия...), выбираем Германию, в нижнем - (Берлин, Зальцбург...).
Вроде нужно использовать AJAX. А я с ним ни разу не сталкивался. А сделать это очень уж нужно.
Может кто поможет кодом или ссылкой на ответ?
Огромное спасибо.
 
 Top
alexspb
Отправлено: 26 Мая, 2010 - 20:36:07
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Главное понять XMLHttpRequest

Самая распространенная схема:
такой запрос (Request) идет к скрипту с параметрами - в ответ получает html, который подставляет getElementById()
(предполагаются знания javascript)


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
garvey
Отправлено: 26 Мая, 2010 - 21:56:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 528
Дата рег-ции: Май 2010  
Откуда: Minsk


Помог: 3 раз(а)




Все, что я понял - это, как отправить запрос серверу.
CODE (javascript):
скопировать код в буфер обмена
  1. var req = new XMLHttpRequest();
  2. req.open("GET", url, true);
  3. req.onreadystatechange = processReqChange;
  4. req.send(null);

И то, что такое здесь url? Вместо этого нужно написать урл скрипта? И что за req.onreadystatechange = processReqChange?
А как от сервера вернуть данные вообще не понимаю.
Помогите.
alexspb, спасибо, что навел на путь.
 
 Top
alexspb
Отправлено: 27 Мая, 2010 - 07:28:16
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




url - это адрес скрипта, который должен будет вернуть html-код (или просто текст)

далее вы получаете в переменную этот код (текст)

5. text = req.responseText;

(обычно с функцией работают и просто возвращают значение: return req.responseText;)

ну а сам текст чтобы использовать, у вас должен быть тег с идентификатором, например,
<div id="countries"></div>

тогда ajaxfunction() подставит window.getElementById('countries').innerHTML полученый код

вернемся к урлу:
чаще с параметрами - если нужны страны, посылаем континент (ID), по которой скрипт отработает и вернет список стран

сам урл у вас очевидно должен сформироваться в комбобоксе континентов:
onchange="ajaxfunction(this.value)"


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
JustUserR
Отправлено: 27 Мая, 2010 - 15:24:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




garvey пишет:
Допустим в верхнем есть (Европа, Азия...). Выбираем Европу, в среднем появляется список (Германия, Англия...), выбираем Германию, в нижнем - (Берлин, Зальцбург...).
Вроде нужно использовать AJAX. А я с ним ни разу не сталкивался. А сделать это очень уж нужно.
Может кто поможет кодом или ссылкой на ответ?
Можно реализовать аналогичную функциональность и без использования AJAX и только за счет применения Iframe по следующей схеме - вы имеете общую статическую HTML-страницу внутри которой располагается один или несколько транспортных фреймов с помощью который будет осущестлвяться загрузка данных с удаленного web-сервера Для начала вы выбирвете определенный элемент из верхнего поля и получаете его ID и направляете этот ID в GET-запросе специальном PHP-скрипту - он получает список данных второго для для текущего выбранного первого и передает его обратно в заданном формате - специальный JS-скрипт разбирает его и динамически включает данные во второе поле по DOM-модели - и так далее в общем-то для любого числа полей Если вдруг пользователя поменяет значение некого поля то все поля ниже него должны быть сброшены - и должна начаться загрузка новой цепочки элементов


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB