[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mb ajax?
md5
Вобщем такая ситуация.

Если форма с 5 select.

Причём список пунктов в каждом последующем селекте зависит от выбора предыдущего...

Например, мы выбираем 1 селект: Россия, во 2 селект загружается список Масква, Питер и т.д... затем мы выбираем Масква, в 3 селект загружается список ул. Ленини и т.д..

значит, посоветуйте, где почитать, какие библиотеки использовать....

загружать сразу всё, все страны, города и т.д. - считаю очень нереальным...

ajax...

смотрел на http://dklab.ru/lib/JsHttpRequest/ .. юзал пример этой.. короче ругается на checkProcessStatus, говорит is undefined...

для того чтобы аякс работал, ведь на сервере ничего надо, поддержка этого метода зависит только от клиента?



Ещё, может кто смотрел http://www.sergiopereira.com/articles/prot...ototype.js.html и jquery?



Спустя 16 минут, 10 секунд (8.11.2006 - 20:35) vasa_c написал(а):
QUOTE
короче ругается на checkProcessStatus, говорит is undefined...

Задай этот вопрос лучше на dklab.
QUOTE
для того чтобы аякс работал, ведь на сервере ничего надо, поддержка этого метода зависит только от клиента?

Ну, вообще это клиент-серверная архитектура.

Или забей на все эти библиотеки. Тут же ничего сложного. Посылаешь на сервер id пункта — с сервера получаешь набор подпунктов.
Даже через динамическую генерацию <script > это можно провернуть.

Как у тебя хранятся данные?

Спустя 2 минуты, 59 секунд (8.11.2006 - 20:38) md5 написал(а):
QUOTE
Как у тебя хранятся данные?

наверно надо сделать 5 таблиц... или всё в одну?? =)
наверное сделаю одну, данные будут различаться по столбы type от 1 до 5, у всех будет parent_id по кот. будет привязка типа Города к Стране и т.д...

Спустя 14 часов, 17 минут, 13 секунд (9.11.2006 - 10:55) md5 написал(а):
Возникли вопросы.

Значит, использую prototype.

А вопросы - общие =)

Как передать из php массив значений и как их яваскриптом запихать в

Спустя 4 часа, 53 минуты, 56 секунд (9.11.2006 - 15:49) md5 написал(а):
ой... пересмотрел очень много статей, форумов...<br><br>короче вроде всё получается, если кому интересно, то мне очень помогла связка статьи <a href='http://htmlcoder.visions.ru/JavaScript/?17' target='_blank'>http://htmlcoder.visions.ru/JavaScript/?17</a><br><br>с фрймворком prototype<br><br>я посылаю id страны в файл ajax.php, в этом файле я формирую строку, раделённую символом |.<br><br>вывожу строку
print $str;


получаю эту строку
var data = originalRequest.responseText;
и потом split'ом делю и создаю массив в javascript, а потом вывожу в select..

только так пока додумался..

Спустя 8 дней, 2 часа, 20 минут, 4 секунды (17.11.2006 - 18:09) max_ru написал(а):
Забей на ajax. Сделай как сделан выбор категории вакансии на hh.ru (тыкай в регистрацию забивай левые данные).
Просто перегружай страницу по ффакту выбора из списка и добавляй новые селекты. Элементарно, Ватсон.

Спустя 1 час, 24 минуты, 52 секунды (17.11.2006 - 19:34) md5 написал(а):
max_ru,
QUOTE
Элементарно, Ватсон.

очень элементарно!

страница, где достаточно графики, селектов 6 штук, и после выбора каждого - перезагружать страницу???
бред

Спустя 1 час, 19 минут, 3 секунды (17.11.2006 - 20:53) vasa_c написал(а):
md5, вообще-то в ajax последняя буква означает XML, а XML это такая вещь (весьма и весьма мощная, особенно в сочетании с DOM), которая именно и предназначена для передачи данных различной структуры, с тем чтобы не придумывать свои форматы, не делить строки по "|" и тому подобное.

Спустя 14 часов, 1 минута, 23 секунды (18.11.2006 - 10:54) REZISTOR написал(а):
md5, может как вариант будет попробовать сделать следующим образом
делаем всё на яве если страна = россия то рисуем следующий селект если город = москва рисуем следующий итд кодом напистаь не смогу потому что яву практически не знаю но я думаю что так можно сделать

Спустя 17 минут, 22 секунды (18.11.2006 - 11:12) md5 написал(а):
REZISTOR,
гениально, а где предлагаешь хранить данные и как их выводить?

Спустя 1 минута, 54 секунды (18.11.2006 - 11:14) md5 написал(а):
vasa_c,
вот смотри, я делаю запрос к файлу ajax.php
в этом файле я вытаскиваю из базы нужные мне данные.

Как мне нужно их передать обратно?

Спустя 12 минут, 26 секунд (18.11.2006 - 11:26) REZISTOR написал(а):
md5,
храним данные в базе данный потом когда рисует селект делаем так
<input type="select" >


.......

Спустя 7 минут, 23 секунды (18.11.2006 - 11:33) vasa_c написал(а):
REZISTOR, ну ты меня опять извини, но данные из базы мы вытаскиваем на php и $результат_базы существует в php, а рисовать то нужно на js.

Спустя 3 минуты, 32 секунды (18.11.2006 - 11:37) REZISTOR написал(а):
дык можно и на пхп нарисовать но перегружать страницу каждый рас тоже кстати с empty() можно нарисовать

Спустя 1 минута, 23 секунды (18.11.2006 - 11:38) REZISTOR написал(а):
ну есть еще бредовая идея чтобы не перегружать страницу целиком можно сделать фрейм в нём селекты и перегружать только его

Спустя 3 минуты, 39 секунд (18.11.2006 - 11:42) vasa_c написал(а):
md5, во-первых разберись, как будешь хранить данные на клиенте. При этом желательно организовать какой-то кеш, чтобы одно и то же каждый раз не грузилось.
Наиболее оптимальным мне кажется будет использование какой-нибудь древоидной структуры:
Например, есть объект отвечающий за основной список, т.е. в нем содержится массив значений этого списка. Каждое значение соответствует какой-то стране и является объектом в котором содержится:
1. Название страны
2. Возможно какой-то id по которому идентифицируется
3. Массив соответствующего этой стране списка городов, имеющий такой же формат, как и первый массив. И так далее...

При выборе нового пункта в списке первым делом ищем данные в этой структуре. Если есть — сразу отрисовываем и заканчиваем на этом, если нет — посылаем запрос на сервер.
Запросы имхо должны выглядеть примерно так:
handler.php?p1=2 — в первом списке выбран пункт с id=2 (т.е. вторая страна - получить список городов этой страны)
handler.php?p1=2&p2=3 — выбрана 2-я страна и 3-й город (получить улицы, или что там).

Спустя 11 минут, 13 секунд (18.11.2006 - 11:53) vasa_c написал(а):
Так же следует учесть, что после того, как ты пошлешь запрос, ответ на него вернется неизвестно когда (возможно и не вернется). За это время ты можешь опять выбрать другой пункт и пойдет другой запрос. Т.о. одновременно могут ожидаться несколько запросов и в каком порядке они придут тоже никто не знает. Конкретно в твоем случае, это достаточно гипотетическая ситуация, но тоже лучше учесть. Таким образом, когда приходит ответ не стоит тут же кидаться его отрисовывать, так как он уже может не соответствовать действительности. Когда приходит ответ данные из него первым делом нужно записать в кеш, а потом видимо нужно вызвать обработчик изменения селекта, который будет проверять есть ли нужные данные в кеше и если нет - посылать запрос.<br><br>Ответ же должен выглядеть примерно так:<br>
<?xml version="1.0" encoding="utf-8" ?>
<response>
  <query>
    <country>3</country>
    <city>2</city>
  </query>
  <answer>
    <street id="1">ул.Красного сантехника</street>
    <street id="2">Никакой переулок</street>
    <street id="5">Шоссе вникуда</street>
  </answer>
</response>

Т.е. на запрос 3-й страны и 2-го города возвращается список улиц с их id.

Спустя 1 день, 1 час, 2 минуты, 15 секунд (19.11.2006 - 12:55) md5 написал(а):
vasa_c,
по такой схеме у меня и работает скрипт, единственное, это то, что я ответ не в виде xml формирую...

а можно по подробнее о кэше? какими средствами воспользоваться?

Спустя 12 минут, 20 секунд (19.11.2006 - 13:08) vasa_c написал(а):
md5, какими средствами? Прочитать то, что я писал выше. Вот та древоидная структура и есть кеш и данные в первую очередь ищутся там и только если их там нет — идет запрос на сервер.

Спустя 5 минут, 31 секунда (19.11.2006 - 13:13) md5 написал(а):
vasa_c,
понял, спасибо

Спустя 2 года, 23 дня, 8 часов, 58 минут, 32 секунды (12.12.2008 - 22:12) Guest написал(а):
ph34r.gif ph34r.gif ph34r.gif ph34r.gif ph34r.gif ph34r.gif ph34r.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.