Формы. Изменение значений в поле SELECT?

-D
На сайте с 04.03.2006
Offline
82
1057

Есть два поля Select:

<select name="from">

<option value="1" >Кипр</option>

<option value="2" >Россия</option>

</select>

<select name="city">

<option value="3">Пафос</option>

<option value="4">Ларнака</option>

<option value="5">Москва</option>

<option value="6">Питер</option>

</select>

Каким образом можно их связать? чтобы при выборе в первом поле значения - Россия, во втором поле появлялась возможность выбора только между Москвой и Питером?

И соответственно при выборе в первом поле Кипр, появлялась возможность выбора только между Пафос и Ларнака?

Можно пример на примитивном куске яваскрипта? так понимаю на нём надо делать или jquery, или по проще можно как-то?

palladin_jedi
На сайте с 13.07.2010
Offline
71
#1

Яваскриптом через onchange, а дальше - что-то вроде this.options[this.selectedIndex].value;

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
D
На сайте с 14.01.2007
Offline
153
#2

второй селект разделить на два и ставить "display:none/block" в зависимости от первого

Ragnarok
На сайте с 25.06.2010
Offline
239
#3

или, второй селект формировать javascriptом в зависимости от смены значения в первом

в первом:

<SELECT name="sel" onChange="javascript:select(document.form.formname.options[document.form.sel1.selectedIndex].value);">

и функция JS:

function select(id){

var s = document.form.model_id;

s.options.length = 0;

s.options[s.options.length] = new Option('Все города','all');

if (id == "1") {

s.options[s.options.length] = new Option('пафос','3');

s.options[s.options.length] = new Option('ларнака','4');

}

if (id == "2") {

s.options[s.options.length] = new Option('москва','5');

s.options[s.options.length] = new Option('питер','6');

}

типа того

//TODO: перестать откладывать на потом
Qinghua
На сайте с 01.09.2009
Offline
103
#4

это называется "cascading dropdowns"

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий