Главная страница
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.032 c
1-1089339922
ksa2002
2004-07-09 06:25
2004.07.25
Прорисовка таблицы (StringGrid)


1-1089290412
Дмитрий 2004
2004-07-08 16:40
2004.07.25
как организовать поиск в диапазоне 2 дат?


14-1088993145
Паниковский
2004-07-05 06:05
2004.07.25
Как вы начинали программировать?


1-1089701869
Vilux
2004-07-13 10:57
2004.07.25
BalloonHint


4-1086810580
Ske4er
2004-06-09 23:49
2004.07.25
Win Hot Keys