Javascript.RU

 
 
Опции темы
 
Старый 04.12.2014, 13:50
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Списки select: отображение разных групп опций в зависимости от выбранного пункта
Имеется два выпадающих списка select (A и B).
Задача заключается в том чтобы в зависимости от выбранного пункта списка A, отображать различные наборы пунктов в списке B.

К примеру в списке A - страны, а в списке B - города.

С какой структурой лучше вообще работать - предусмотреть разные select для каждого пункта в списке A, группировать пункты в списке B или чтото еще?

Подскажите элегантный и грамотный способ.
 
Старый 04.12.2014, 16:11
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Судя по всему это задача не версталы а программиста?
 
Старый 04.12.2014, 17:37
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 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
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

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

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

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

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

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

Сообщение от danik.js
В данном случае тут ничего не перекладывается
Что значит не перекладывается, если ты дергаешь сервак каждый раз приподгрузке данных.
 

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подставить значение в action="" в зависимости от выбранного пункта select nkl Элементы интерфейса 2 13.05.2013 14:06


© Илья Кантор, 2007-2021 О проекте - Архив форума - Вверх