Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизПро комбобоксы Найти похожие ветки
← →
Kerk © (2004-07-07 08:48) [0]На HTML-странице есть два комбобокса (<select>).
При изменении первого комбобокса должны меняться
значения полей второго.
Как такое сделать?
Пока в голову пришло два варианта:
1)При изменении значения первого бокса полностью обновлять страницу (генерировать значения второго на стороне сервера).
2)Передавать клиенту всю нужную информацию и изменение первого бокса обрабатывать ява-скриптом.
Как реализовать эти варианты точно не знаю. :(
please help
← →
Иксик © (2004-07-07 10:46) [1]Мне кажется первый варинат предпочтительнее. Во втором случае долго будет передаваться и труднее будет обновлять данные.
Я так делал:
function CourseClick()
{
window.location.replace("editlect.asp?IdCourse=" + document.EditForm.Course.options[document.EditForm.Course.selectedIndex].value)
}
<FORM Name=EditForm ...>
<SELECT NAME=Course SIZE=1 onChange="CourseClick()">
Правда давно это было, может если подумать, сейчас что-нибудь лучше бы сочинил. Но на первый взгляд, достаточно хорошо.
← →
Мазут Береговой © (2004-07-07 11:12) [2]Я по-другому делал.
Генерировал код для javascript в ASP.
Примерно такой ход,
Response.Write("function SelectOption1()" & vbcrlf)
Response.Write("{" & vbcrlf)
Response.Write("[selectbox].option.add(value,name);" & vbcrlf)
Response.Write("......." & vbcrlf)
Response.Write("}" & vbcrlf)
А потом в первом боксе на событие onchange писал
примерно так:
if(document.getElementById("box1").selectedIndex==1)
{
document.getElementById("box1").option.clear();
SelectOption1();
}
else if()....
Что-то в таком духе...
Точно сейчас не помню, да текста не сохранил, так что методы для option надо уточнять...
И никаких перезагрузок страниц не было...
← →
Мазут Береговой © (2004-07-07 11:13) [3]Естественно, вместо [selectbox] должно быть что-то вроде document.getElementById("box1")
← →
Иксик © (2004-07-07 11:16) [4]У меня тоже через asp генерировалось, просто я asp-код вырезал для простоты. Но все-таки для больших объемов данных придется страничку обновлять.
← →
Kerk © (2004-07-07 11:18) [5]Там действительно в будущем большие объемы ожидаются...
← →
Esu © (2004-07-07 11:22) [6]ну можно 2хмерный массив генерировать на asp/php, а потом очищать и заполнять второй selectbox. У меня даже 4 таких было. первый заполняет второй, второй третий и тп. Перегружать страничку жутко не хотелось, да и штук 10 этих элементов (по 4 select) было на странице. Вроде никто не умер :) Массив для всех один...
← →
Иксик © (2004-07-07 11:24) [7]
> Kerk © (07.07.04 11:18) [5]
А чем не устраивает
> Иксик © (07.07.04 10:46) [1]
?
← →
Danilka © (2004-07-07 11:27) [8]Если общий объем данных значительно больше объема странички + списка значений в отфильтрованом комбобоксе, то лучше обновлять.
:))
А вообще, возможно, правильней сделать так: одна страничка с первым комбобоксом и кнопкой, после чего попадаешь на вторую страничку со вторым комбобоксом.
← →
Kerk © (2004-07-07 11:30) [9]
> Иксик © (07.07.04 11:24) [7]
> А чем не устраивает
Устраивает... наверно так и сделаю
← →
DiamondShark © (2004-07-07 11:31) [10]А можно вопрос? С какого это рожна в комбобоксе вдруг ожидаются большие объёмы?
← →
Kerk © (2004-07-07 11:39) [11]
> DiamondShark © (07.07.04 11:31) [10]
> А можно вопрос? С какого это рожна в комбобоксе вдруг ожидаются
> большие объёмы?
Относительно большие.. :)
Просто значение комбобокса менять будут крайне редко, поэтому глупо каждый раз тащить двухмерный массив со всевозможными вариантами.
← →
Иксик © (2004-07-07 11:41) [12]
> DiamondShark © (07.07.04 11:31) [10]
У меня было так: в перовм список курсов, во втором список лекций к выбранному курсу. 20 курсов + 20 лекций ничего. А если пересылать все сразу, то получиться 20х20, а это уже плохо.
← →
Мазут Береговой © (2004-07-07 12:16) [13]Для телефонного интернета это может и плохо, а для внутреннего - ерунда. Я делал, правда не комбобоксы, а списки по 1000-2000 строк. На intranet - доля секунды на генерацию и загрузку в клиент браузер. Зато никаких перезагрузок и миганий, дерганий...
← →
DiamondShark © (2004-07-07 13:43) [14]Пример смотреть здесь:
http://mcc.md/acoulichev/dynlist/dynlist.html
← →
Kerk © (2004-07-07 14:14) [15]При запуске показывает ошибку. Но принцип ясен.
← →
DiamondShark © (2004-07-07 14:45) [16]
> Kerk © (07.07.04 14:14) [15]
> При запуске показывает ошибку. Но принцип ясен.
А какую ошибку?
← →
Kerk © (2004-07-07 15:08) [17]Строка 41. Объект не поддерживает это свойство или метод.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.031 c