webew
Войти » Регистрация
 
PHP
JavaScript
MySQL/MariaDB

Помогите разобраться с запросом для БД.

10 августа 2008, 1:16
Автор: cvbn
У меня три таблицы в БД.
Первая таблица - Страна: где id=1 title=Россия, id=2 title=Украина и т.д.,
Вторая таблица - Регионы, где id региона соответствует id выбранной страны (Выбрана Россия далее идут регионы России, а не Украины, к примеру)
Третья - Город, где id города соответствует id региона
Все таблицы состоят из двух полей (id) и (title) где id первичный ключ.
Скажите, как мне связать все эти три параметра и выводить их для посетителя в виде формы с тремя выпадающими списками на страницу сайта, где он (посетитель) будет выбирать свой город посредством этой формы
Огромное спасибо, это вопрос сидит в моей голове уже 3 недели или больше....
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
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 (хотя и не обязательно) с нужным списком регионов или городов, который необходимо распарсить и создать на его основе новый селект.
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
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100