AJAX, PHP, XML и раскрывающиеся списки каскадных - PullRequest
0 голосов
/ 04 мая 2010

Какие библиотеки PHP вы бы порекомендовали реализовать следующим образом:

  • Три зависимых раскрывающихся списка
  • Три источника данных XML
  • AJAX на основе

По сути, я хотел бы создать базу данных XML и подключить форму, которая позволяет пользователю выбирать три различных зависимых параметра:

  1. Пользователь нажимает Регион
  2. Пользователь нажимает Район (отфильтрованный по региону)
  3. Пользователь нажимает на станцию ​​(фильтруется по району)

Несмотря на то, что я хотел бы использовать PHP и XML, общая проблема:

  • Одна форма XHTML
  • Три зависимых каскадных выпадающих списка
  • Три плоских файла (без реляционной базы данных) для данных списка

Решение должно быть эффективным, простым, надежным и кросс-браузерным.

Какие технологии вы бы порекомендовали для решения проблемы?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 04 мая 2010

Я бы сказал, что jQuery и плагин Autocomplete .

  • создают три обычных текстовых поля и расширяют их с помощью autocomplete()
  • , каждое из которых запрашивает данныес сервера, когда пользователь вводит, с помощью AJAX GET-запросов
  • сервер отправляет обратно совпадающие данные в виде строчного текста, который, в свою очередь, использует плагин автозаполнения для отображения списка опций
  • подключите обработчик для события result раскрывающихся списков, сохраняя выбранный параметр.
  • для второго текстового поля потребуется установить первый и т. д.
  • каждое текстовое поле запрашивает данные с сервера, включая все ранее выбранные параметры, чтобы сервер мог найти нужные данные
  • , с которыми сервер работает DOMDocument и DOMXPath дляполучить данные, плагин автозаполнения имеет встроенное кэширование на стороне клиента, что облегчает загрузку на сервер
0 голосов
/ 04 мая 2010

Ванильный PHP и хороший JavaScript-фреймворк - все, что вам нужно.

Вам потребуется создать скрипт php для генерации отфильтрованных списков районов и станций на основе предоставленного родительского фильтра (выталкивая данные в формате xml или json). PHP должен будет проанализировать данные xml и отфильтровать список на основе критериев (очевидно, БД справится с этим лучше, чем ручной анализ xml)

Затем используйте инфраструктуру js для запроса файлов php каждый раз, когда изменяется значение родительского списка. Js-фреймворк не требуется (и на самом деле вызывает некоторое раздувание), однако это сделает разработку приложения легкой задачей.

Лично я бы порекомендовал jQuery из-за простой кривой обучения, но любая популярная среда js даст тот же результат.

...