Forum Webscript.Ru

Программирование => PHP => Тема начата: WebUser от 15 Апреля 2007, 14:33:18

Название: Динамическая подгрузка <select>
Отправлено: WebUser от 15 Апреля 2007, 14:33:18
помогите разобратся, имеется сайт http://moikrug.ru/profile/educationadd/
нужно сделать также как и там выбор списков регионов, без перезагрузки страници

Когда выбираешь страну, скрипт даёт команду PHP скрипту вывести список регионов из БД MySQL
если выбираешь регионы то PHP скрипт должен вывести из БД города, точно также как на том сайте

искал в инэте, нигде не нашёл, пришлось с этого сайта брать, но вот проблема, как передавать данные немогу понять, вот тут если запустить ссылку то

http://moikrug.ru/widgets/ajax/regions?q=648 выведится список регионов
http://moikrug.ru/widgets/ajax/cities?q=14068 выведится списоу городов

я так понял это массив JS но я его совсем незнаю, владею немного PHP

вот отрывок того что выводится по ссылке

Код: (java) [Выделить]

// BEGIN JsHttpRequest JsHttpRequest.dataReady(
\'0\', // this ID is passed from JavaScript frontend \'\',
{ \'q\': \'648\', \'result\': [
{ \'id\': \'18009\', \'parent_id\': \'648\', \'russian\': \'Киев и Киевская область\' },
{ \'id\': \'18019\', \'parent_id\': \'648\', \'russian\': \'Автономная Республика Крым\' },
{ \'id\': \'18018\', \'parent_id\': \'648\', \'russian\': \'Винницкая область\' },
{ \'id\': \'18017\', \'parent_id\': \'648\', \'russian\': \'Волынская область\' },
{ \'id\': \'18016\', \'parent_id\': \'648\', \'russian\': \'Днепропетровская область\' } ... ]
} ) // END JsHttpRequest



я так понял он делается средствами PHP с полученых данных, делает выборку данных из MySQL
но как он дальше делает я немогу понять, ведь ещё составляется список как они передаются?

помогите пожалуйста, уже бъюсь столько времени
Название: Динамическая подгрузка <select>
Отправлено: for_i_0 от 15 Апреля 2007, 23:45:13
1)Это AJAX

ИМХО лучше сделать, просто JavaScript - ом.
тоесть выбрать зарание из БД все эелементы и спрятать их. когда значения первого меню меняется выдавать второе меню.
Название: Динамическая подгрузка <select>
Отправлено: WebUser от 16 Апреля 2007, 07:35:11
создавать список сразу не хотелось бы, что будет когда в БД будет около 50 тыс записей как бы не больше, и все прятать. А там ведь города и не только по регионам России, но и других стран, список большой будет.

Я конечно не против на счёт JavaScript - ом сделать, но только так чтобы сразу не выбирался список из БД а только по выбранным элементам. Но и хотелось чтобы при выборе допустим страны, или региона и города высвечивалось "Идёт загрузка..." ну также как на том сайте.

А есть такие где-нить?
Название: Динамическая подгрузка <select>
Отправлено: Altaxar от 16 Апреля 2007, 15:21:43
Почитай о AJAX, у тебя в примере как вижу используется библиотека, попробуй разобраться без нее, легче будет.
Вот обычный JavaScript (AJAX) скрипт, который заменит содержание
дива
.......
на HTML код который выдаст PHP скрипт.

function load_city(q){
 req = window.XMLHttpRequest?
new XMLHttpRequest() :
    new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function() {
    if (req.readyState == 4){  
    if (req.status == 200) {
    document.getElementById("city").innerHTML=req.responseText;
    }
    }
url="http://moikrug.ru/widgets/ajax/regions?q="+q;
        req.open("GET", url, true);
  req.send(null);
}
Название: Динамическая подгрузка <select>
Отправлено: WebUser от 16 Апреля 2007, 17:38:02
Altaxar, спасибо, только я немогу понять как с ним работать, я JS незнаю, я вставил этот код внутри страници и ниже
.......


но ничего не отобразилось, или там надо отдельную кнопку создавать какую-то?
Название: Динамическая подгрузка <select>
Отправлено: ferryman от 16 Апреля 2007, 18:14:06
Почитай здесь (http://xhtml.ru/2006/02/11/dynamic-select/), если подойдет. Единственный недостаток - грузяться все селекты
Название: Динамическая подгрузка <select>
Отправлено: Altaxar от 16 Апреля 2007, 18:25:40
По умолчанию у тебя выводятся списки (select) ? вот эти select\'ы распредели по дивам и назови их соотвествующе, например у тебя есть
страны , регионы, города . вот и зделай 2 дива(страны у тебя не меняются)









Но переделай скрипты PHP
http://moikrug.ru/widgets/ajax/regions?q=648 выведится список регионов
http://moikrug.ru/widgets/ajax/cities?q=14068 выведится списоу городов
а вних просто выводиш селект в HTML, регионы/города соответствующе, но не забуть вставить onchange="start_ajax(this.value,1); в ПХП скрипт
Название: Динамическая подгрузка <select>
Отправлено: WebUser от 18 Апреля 2007, 17:28:48
спасибо большое, буду разбиратся