У меня три таблицы в БД.
Первая таблица - Страна: где id=1 title=Россия, id=2 title=Украина и т.д.,
Вторая таблица - Регионы, где id региона соответствует id выбранной страны (Выбрана Россия далее идут регионы России, а не Украины, к примеру)
Третья - Город, где id города соответствует id региона
Все таблицы состоят из двух полей (id) и (title) где id первичный ключ.
Скажите, как мне связать все эти три параметра и выводить их для посетителя в виде формы с тремя выпадающими списками на страницу сайта, где он (посетитель) будет выбирать свой город посредством этой формы
Огромное спасибо, это вопрос сидит в моей голове уже 3 недели или больше....
Помогите разобраться с запросом для БД.
10 августа 2008, 1:16
Автор: cvbn
|
NO USERPIC
|
rgbeastЗдесь три подхода. Можно использовать PHP, Javascript или AJAX.Подход с точки зрения PHP: 1. Форма на первом шаге содержит только один выпадающий список - список стран 2. Выбрав страну, пользователь нажимает на кнопку "Далее", которая отправляет форму 3. Скрипт PHP, обрабатывающий форму делает запрос к базе данных, зная id страны и выдает вторую форму для выбора региона данной страны 4. Форма содержит выбор региона, все повторяется Подход Javascript 1. Изначальный скрипт выдает форму, в которой все элементы кроме первого неактивны. При этом к базе делаются запросы SELECT * FROM country; SELECT * FROM regions; SELECT * FROM cities; Результаты запросов формируются в виде присовения массивов в Javascript. См., например файл http://webew.ru/labels.js, который формируется скриптом PHP по данным, хранящимся в базе данных 2. Изменение страны обрабатывается с помощью Javascript, который активирует выпадающий список регионов и заполняет его требуемыми регионами (из имеющегося массива) Подход AJAX В отличие от подхода Javascript, массив регионов и городов формируется не при инициализации формы, а индивидуальным AJAX-запросом при изменении страны. |
11.08.2008, 15:20 Ответить |
|
NO USERPIC
|
cvbnБлагодарен за поддержку. Третий вариант подходит для моего проекта лучше остальных. Скажите пожалуйста, где я могу узнать об Ajax и как изучить его лучше и быстрее? Огромное спасибо! |
11.08.2008, 21:41 Ответить |
|
|
burПрочитайте статью Пользуемся AJAX-объектом, она должна многое прояснить.Если вкратце, то на селекты вам нужно повесить событие onchange, которое будет инициализировать обработчик, отправляющий ajax-запрос на сервер. В ответе сервера должен быть xml (хотя и не обязательно) с нужным списком регионов или городов, который необходимо распарсить и создать на его основе новый селект. Fastcoder.org — портал для JavaScrpt-программистов
|
12.08.2008, 11:56 Ответить |
|
NO USERPIC
|
SignВедь Вам наверняка потребуется не только ajax...Поэтому стоит воспользоваться какой-нибудь библиотекой, jQuery например. Вот функции этой библиотеки для ajax: jQuery.ajax( options ) Returns: XMLHttpRequest //Load a remote page using an HTTP request. load( url, data, callback ) Returns: jQuery //Load HTML from a remote file and inject it into the DOM. jQuery.get( url, data, callback, type ) Returns: XMLHttpRequest //Load a remote page using an HTTP GET request. jQuery.getJSON( url, data, callback ) Returns: XMLHttpRequest // Load JSON data using an HTTP GET request. jQuery.getScript( url, callback ) Returns: XMLHttpRequest // Loads, and executes, a local JavaScript file using an HTTP GET request. jQuery.post( url, data, callback, type ) Returns: XMLHttpRequest // Load a remote page using an HTTP POST request. В jQuery есть ещё много нужного (поиск елементов и атрибутов, очень удобное их изменение и работа с css, анимационные эффекты и тд) |
14.08.2008, 12:10 Ответить |
|
NO USERPIC
|
cvbnОгромное спасибо за поддержку!!! |
16.08.2008, 00:01 Ответить |
|
NO USERPIC
|
rgbeastНашел пример для второго варианта: сайт http://mobisoto.ru содержит выбор производителя и модели (сверху справа два выпадающих списка). Спискс связаны с помощью Javascript, который содержится в http://mobisoto.ru/js/onselect.php и, очевидно, генерируется по данным базы. |
15.08.2008, 23:28 Ответить |
© 2007—2012 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.