Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.029 c
14-1088944443
Undert
2004-07-04 16:34
2004.07.25
St.-Petersburg + "W+" +" *DSL" + "Fairy Cow Unlimited"


1-1089363972
ilop
2004-07-09 13:06
2004.07.25
Работа с битами.


4-1086780359
RoadStar
2004-06-09 15:25
2004.07.25
Как рисовать на чужом окне?


14-1089092868
----
2004-07-06 09:47
2004.07.25
need help


6-1085714482
Graf
2004-05-28 07:21
2004.07.25
Прокси-сервер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский