|
|
|

04.12.2014, 13:50
|
 |
Профессор
|
|
Регистрация: 11.05.2011
Сообщений: 213
|
|
|
Списки select: отображение разных групп опций в зависимости от выбранного пункта
Имеется два выпадающих списка select (A и B).
Задача заключается в том чтобы в зависимости от выбранного пункта списка A, отображать различные наборы пунктов в списке B.
К примеру в списке A - страны, а в списке B - города.
С какой структурой лучше вообще работать - предусмотреть разные select для каждого пункта в списке A, группировать пункты в списке B или чтото еще?
Подскажите элегантный и грамотный способ.
|
|
|

04.12.2014, 16:11
|
 |
Профессор
|
|
Регистрация: 11.05.2011
Сообщений: 213
|
|
|
Судя по всему это задача не версталы а программиста?
|
|
|

04.12.2014, 17:37
|
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
В простом случае никакие структуры не нужны
<html>
<head>
</head>
<body>
<select id="countries">
<option>russia</option>
<option>ukraine</option>
</select>
<select id="russia" style="display: none">
<option>Moskow</option>
<option>Sp-burg</option>
</select>
<select id="ukraine" style="display: none">
<option>Kiev</option>
<option>Harkov</option>
</select>
<script>
get=document.querySelector.bind(document)
countries=get("#countries")
russia=get("#russia")
ukraine=get("#ukraine")
countries.onchange=function(){
switch(this.value){
case("russia"): russia.style.display="block"; ukraine.style.display="none"; return
case("ukraine"): ukraine.style.display="block"; russia.style.display="none"; return
}
}
</script>
</body>
</html>
|
|
|

04.12.2014, 18:18
|
 |
Профессор
|
|
Регистрация: 11.05.2011
Сообщений: 213
|
|
|
Спасибо. Ну а вообще такие вещи обычно реализуются php+ajax или выводить все селекты для всех стран, а потом управлять при помощи js это нормальная практика?
|
|
|

04.12.2014, 18:21
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
|
Сообщение от spo
|
|
выводить все селекты для всех стран, а потом управлять при помощи js это нормальная практика
|
Нет. Списки могут быть очень большими. Грузить все, учитывая что почти все из них не понадобятся - неразумно.
__________________
В личку только с интересными предложениями
|
|
|

04.12.2014, 18:23
|
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
|
spo,
Я вообще не профи, поэтому по общепринятым практикам консультировать не могу. Но, исходя из здравого смысла, легко прийти к выводу, что переложить работу сервера на клиента всегда в интересах владельца ресурса.
|
|
|

04.12.2014, 18:26
|
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
|
Сообщение от danik.js
|
|
Списки могут быть очень большими
|
Вот если очень большие, тогда, может быть, неразумно. Не надо частный случай выдавать за "общепринятые практики", те за общий.
|
|
|

04.12.2014, 18:29
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
|
Сообщение от krutoy
|
|
Но, исходя из здравого смысла, легко прийти к выводу, что переложить работу сервера на клиента всегда в интересах владельца ресурса.
|
В данном случае тут ничего не перекладывается. Тупо гонится лишний трафик (если городов много).
__________________
В личку только с интересными предложениями
|
|
|

04.12.2014, 18:55
|
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
|
Сообщение от danik.js
|
|
В данном случае тут ничего не перекладывается
|
Что значит не перекладывается, если ты дергаешь сервак каждый раз приподгрузке данных.
|
|
|
|