Никита К.
1594 повідомлення
#15 років тому
Есть HTML-форма.
В ней: 2 выпадающих списка, причем элементы второго списка зависят от выбранного элемента в первом...

Вопрос: как это сделать?

Сама форма и код JavaScript'a (в source'ах) можно увидеть здесь:

JavaScript создаётся PHP-скриптом.

+Там ещё остались следы моих экспериментов, поэтому обилию событий в select'ах не удивляйтесь)))

Плз, если кто сталкивался, или знает как сделать - помогите чайнику в JavaScript'e)))
Дмитрий Василец
70 повідомлень
#15 років тому
Назначить селектору id и через ajax обновлять по событию в первом
Никита К.
1594 повідомлення
#15 років тому
Id назначен и так (у обоих)
Роман Беляев
16382 повідомлення
#15 років тому
Задачу конкретней можно описать? выбирая элемент в первом списке нужно загрузить элемнты во второй?
Никита К.
1594 повідомлення
#15 років тому
Да.
То есть выбираем, например Кинотеатр "Киев", а из БД в список залов подгружаются только те значения, которые соответствуют этому кинотеатру. Разумеется, без перезагрузки.

Подобные примеры есть ВКонтакте например (Когда выбираем страну, нам выводятся только те области, которые соответствуют этой стране, выбираем регион - подгружаются города)

Вот и всё, в общем)))
Сергей Шпак
596 повідомлень
#15 років тому
Примерно так :

1-й селект : у кажого опшиона - есть свой id
2-й селект пустой.

цепляем на 1-й селект отработку события ( онселект ),
далее получаем id выбранного опшиона, с помощью аякса или жейсона, отправляем на сервер полученый id.
На стороне сервера фильтруем и выдаем в нужном нам формате, - получаем и вставляем в селект 2.
Никита К.
1594 повідомлення
#15 років тому
Ок, спасибо, попробую)
Максим Антонюк
21 повідомлення
#15 років тому
Полученные по запросу json-данные поставляются
следующим образом:

jQuery

options = '';
$(data.city_data).each(function() {
options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('name') + '</option>';
});
$('#city').html(options);
$('#city').attr('disabled', false);
Никита К.
1594 повідомлення
#15 років тому
Цитата:
цепляем на 1-й селект отработку события ( онселект ),
далее получаем id выбранного опшиона, с помощью аякса или жейсона, отправляем на сервер полученый id.
На стороне сервера фильтруем и выдаем в нужном нам формате, - получаем и вставляем в селект 2.

То есть, если более по-русски, то...
OnSelect="function();" - function() и выполняет все действия...

Цитата ("Anexroid"):
помогите чайнику в JavaScript'e

Я вообще почти ничего непонял)))
Никита К.
1594 повідомлення
#15 років тому
max7, thanks, попробую)))

вот только ещё бы понять как jQuery вообще пользоваться)))
Библиотеку то подключил, а что дальше... =)

Кто может помочь?
Максим Антонюк
21 повідомлення
#15 років тому
    Библиотеку то подключил, а что дальше... =)

В гугле неприличное число примеров работы с Ajax и jQuery =)

Примеры работы есть в примерах


Тебе нужно
1а. Отдать по ajax-запросу данные в json-формате
Потом в javascript-e на основе json сформировать строку с <option>
1б. Отдать по ajax-запросу сразу сформированную строку с тегами <option>
2. Указать нужный dataType
3. Заменить данные дроп-дауна - в $.ajax success
Роман Беляев
16382 повідомлення
#15 років тому
Сколько данных то всего? может не имеет смысла морочиться с аяксом, а грузить сразу все и уже на месте этим манипулировать? Затупки на подгрузку данных приятными не будут.
Александр В.
771 повідомлення
#15 років тому
C jquery


у первого селекта пишете
onchange='$("#select2".load("index.php?value="+this.value);'

select2 - это ид второго селекта
index.php - урл на php скрипт на сервере(ну или куда там), куда отправляется значение первого селекта. Оттуда должна вернуться строка со списком option-ов для второго селекта

и всё
Никита К.
1594 повідомлення
#15 років тому
Я чуствую никто не удосужился посмотреть ссылку и сорсы)))
В данный момент данные загружаются все и сразу, проблема в том, как выводить только нужные...
Никита К.
1594 повідомлення
#15 років тому
alexander_vip, Сделать то сделал, но при этом после клика по первому списку - второй становится пустым и неактивным...
Хотя скрипт, по идее, должен нормально всё выводить
Никита К.
1594 повідомлення
#15 років тому
Ой, протупил...
Всё работает, спасибо всем за помощь!
Азиз Таифов
37 повідомлень
#15 років тому
Добрый день! Подскажите пожалуйста как изменить Jumpmenu? Хотелось бы сделать свое меню со своими картинками. Спасибо!