Автор Тема: Динамическая подгрузка <select>  (Прочитано 7634 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн WebUser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическая подгрузка <select>
« : 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
но как он дальше делает я немогу понять, ведь ещё составляется список как они передаются?

помогите пожалуйста, уже бъюсь столько времени

Оффлайн for_i_0

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
Динамическая подгрузка <select>
« Ответ #1 : 15 Апреля 2007, 23:45:13 »
1)Это AJAX

ИМХО лучше сделать, просто JavaScript - ом.
тоесть выбрать зарание из БД все эелементы и спрятать их. когда значения первого меню меняется выдавать второе меню.
[off]Безработный[/off]

Оффлайн WebUser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическая подгрузка <select>
« Ответ #2 : 16 Апреля 2007, 07:35:11 »
создавать список сразу не хотелось бы, что будет когда в БД будет около 50 тыс записей как бы не больше, и все прятать. А там ведь города и не только по регионам России, но и других стран, список большой будет.

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

А есть такие где-нить?

Оффлайн Altaxar

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 222
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moroseac.ru/
Динамическая подгрузка <select>
« Ответ #3 : 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"urltrue);
  
	
req.send(null);
}
« Последнее редактирование: 16 Апреля 2007, 15:29:01 от Altaxar »
Не все является тем чем кажется.

Оффлайн WebUser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическая подгрузка <select>
« Ответ #4 : 16 Апреля 2007, 17:38:02 »
Altaxar, спасибо, только я немогу понять как с ним работать, я JS незнаю, я вставил этот код внутри страници и ниже
.......


но ничего не отобразилось, или там надо отдельную кнопку создавать какую-то?

Оффлайн ferryman

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 117
  • +0/-0
  • 0
    • Просмотр профиля
    • http://svitlan.lutsk.ua/forum/
Динамическая подгрузка <select>
« Ответ #5 : 16 Апреля 2007, 18:14:06 »
Почитай здесь, если подойдет. Единственный недостаток - грузяться все селекты

Оффлайн Altaxar

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 222
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moroseac.ru/
Динамическая подгрузка <select>
« Ответ #6 : 16 Апреля 2007, 18:25:40 »
По умолчанию у тебя выводятся списки (select) ? вот эти select\'ы распредели по дивам и назови их соотвествующе, например у тебя есть
страны , регионы, города . вот и зделай 2 дива(страны у тебя не меняются)

<script>
function 
start_ajax(q,n){
 
req window.XMLHttpRequest
    new 
XMLHttpRequest() : 
    new 
ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function() {
    if (
req.readyState == 4){  
        if (
req.status == 200) {
          if(
n==0)
         
document.getElementById("state").innerHTML=req.responseText;
          else
        
document.getElementById("city").innerHTML=req.responseText;
            }
        }
  if(
n==0)
url="http://moikrug.ru/widgets/ajax/regions?q="+q;
else
url="http://moikrug.ru/widgets/ajax/cities?q="+q
        
req.open("GET"urltrue);
      
req.send(null);
}
</script>
<div id="state">
<select name="country" onchange="start_ajax(this.value,0);">
<option .....>.....</option>
<option .....>.....</option>
<option .....>.....</option>
</select>
</div>
<div id="city">
<select name="country" onchange="start_ajax(this.value,1);">
<option .....>.....</option>
<option .....>.....</option>
<option .....>.....</option>
</select>
</div>

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

Оффлайн WebUser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Динамическая подгрузка <select>
« Ответ #7 : 18 Апреля 2007, 17:28:48 »
спасибо большое, буду разбиратся

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28