Главная страница
    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.034 c
14-1089107142
Romkin
2004-07-06 13:45
2004.07.25
Все, кризис начался, господа присяжные заседатели


3-1088586235
maximus_
2004-06-30 13:03
2004.07.25
Не получается с запросом IBDataSet


1-1089299151
Andy BitOff
2004-07-08 19:05
2004.07.25
Мистика !!! Где утечка ???


3-1088685364
Ceval
2004-07-01 16:36
2004.07.25
Подскажите как с помощью ADOTable связать две таблицы ?


6-1085245111
Игорь Н.
2004-05-22 20:58
2004.07.25
Как обратится к web странице не используя Internet Explorer





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский