Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Про комбобоксы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.039 c
8-1084014356
Sonic_gd
2004-05-08 15:05
2004.07.25
Контекстное меню


14-1088752863
МТС-ник
2004-07-02 11:21
2004.07.25
unlimited GPRS


14-1088169388
Jeer
2004-06-25 17:16
2004.07.25
Пятничный блуд:))


1-1089645817
ghg
2004-07-12 19:23
2004.07.25
дополнительные параметры в стандартных обработчиках событий


1-1089378089
MadGhost
2004-07-09 17:01
2004.07.25
Как прикрутить справку *.hlp к приложению