Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 05.07.2007
Сообщений: 140
1

При изменении значения одного select нужно подгрузить в другой select соответствующие данные, которые лежат в базе

06.01.2008, 07:49. Показов 2987. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу прощения за возможный оффтопик.

В форме есть два поля select. При изменении значения одного select нужно подгрузить в другой select соответствующие данные, которые лежат в базе. Нужно сделать какую-нибудь функцию OnChange или OnSelect. Надеюсь понятно объяснил суть вопроса.
Мне попадались подобные примеры на JScript, но я не сильно рулю в яве, хотя разобраться можно.
Может быть кто сможет популярно объяснить мне принцип построения подобной функции.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2008, 07:49
Ответы с готовыми решениями:

Как при изменении одного <select> подгрузить в другой <select> данные...
Как при изменении одного &lt;select&gt; подгрузить в другой &lt;select&gt; данные... пример: с марками...

При выборе какого-то значения в select'e нужно показывать другой select рядом
Здравствуйте, я полный ноль в js, но нужно следующее: На сайте есть разделы. При выборе какого-то...

Как изменить значение одного select-а при изменении другого select-а?
Добрый день! Подскажите как изменить значение select при изменении другого select. первый:...

Изменение данных одного select при изменении другого select
нужно что бы выбирая одну группу менялись данные в &quot;номере по журналу&quot; не понимаю как это сделать...

5
Sergik
06.01.2008, 09:58 2
если select большой и данных много и берутся они динамически с сервера, то проще всего перезагрузка формы
если нет:
для IE:
Код
function DelSelect(id) //удаляет все элементы из select
{
	var i;
	var sel=document.all(id);
	for(i=sel.length-1;i>=0;i--)
	{
			sel.remove(i);
	}		
}
function AddItem(id,value,text) //добавляет элемент в указанный select
{
	var sel=document.all(id);
	var oOption = document.createElement('OPTION');
	oOption.text = text;
	oOption.value = value; 
	sel.add(oOption,sel.length);
}
для NN (form1 - имя текущей формы)
Код
function DelSelect(id)
{
	var i;
	var sel=eval('document.form1.'+id);
	for(i=sel.length-1;i>=0;i--)
	{
	     sel.options[i]=null;
	}		
}
function AddItem(id,value,text)
{
	var sel=eval('document.form1.'+id);
        sel.options[sel.length] = new Option(text,value)
}
код набирался прямо здесь, поэтому возможны мелкие ошибки
0 / 0 / 1
Регистрация: 05.07.2007
Сообщений: 140
06.01.2008, 14:42  [ТС] 3
Я нашел неплохой пример на JScript, по моему - то,что нужно. Если получится скину код.
Дополнительный вопрос. Не будет ли каких нибудь траблов, если я код клиентского скрипта на JScript выведу в тело страницу серверным скриптом на VBScript. Наподобие такого варианта:
Код
<%Response.Write '<script language='Javascript'>'&vbCrLf
Response.Write '<!--'&vbCrLf
Response.Write 'function bla-bla-bla'&vbCrLf
%> и т.д.
0
Sergik
06.01.2008, 14:47 4
не будет, только выводи не
Response.write('<script...')
а
Response.write('<scr'&'ipt...')
0 / 0 / 1
Регистрация: 05.07.2007
Сообщений: 140
07.01.2008, 06:44  [ТС] 5
Обещаный код. Я использую два рекордсета. Если что коряво сделано, буду рад замечаниям.
Суть задачи. В базе есть поля field1 и field2. Field1 - допустим, производитель товаров, field2 - названия товаров. Количество записей в обоих полях неизвестно. Необходимо создать форму с выпадающими меню, где при изменении первого со значениями field1, во второе подставляются соответствующие значения field2. Данных не много, но постоянно изменяются.
Изначальный код статического JScript, который работает с заранее известными параметрами:
srchform - имя формы
prName - имя select со значениями field2
Код
<script language='Javascript'>
<!--
function OnSelect(select)
{switch (select.selectedIndex)
{case 0:with (document.srchform.prName){
options.length = 0;
options[0] = new Option('Все','all');
selectedIndex = 0;}; 
break;
case 1:
with (document.srchform.prName) {
options.length = 0;
options[0] = new Option('Все','all');
options[options.length] = new Option('Product1','Product1');
options[options.length] = new Option('Product2','Product2');
selectedIndex= 0;
}; break;
case 2:
и т.д.
}
}
-->
</script>
Теперь сделаем тело скрипта с помощью ASP
Код
<%Set con=Server.CreateObject('ADODB.Connection')
con.Open 'connection-string'
Set rs = Server.CreateObject('ADODB.Recordset')
Set rs2 = Server.CreateObject('ADODB.Recordset')
'--- выбираем только тех производителей товары которых есть в наличии
SQL = 'Select DISTINCT(field1) from table Where field1=true ORDER BY field1' 
rs.Open SQL, con, 3
TotalCase = rs.RecordCount ' определяем количество условий CASE для Jscript%>
Далее формируем непосредственно JScript:
Код
<script language='Javascript'>
<!--
function OnSelect(select)
{switch (select.selectedIndex)
{case 0:with (document.srchcar.mark){options.length = 0;options[0] = new Option('Все','all');selectedIndex = 0;}; break;
<%
CntCase = 1 ' ---определяем счетчик CASE
do while CntCase <= TotalCase
CompName = rs('field1').value ' ---определяем текущего производителя
Response.Write 'case ' & CntCase &':'& vbCrLf  ' --- выводим CASE 
Response.Write 'with (document.srchform.prName) {' &vbCrLf
Response.Write 'options.length = 0;'&vbCrLf
	Response.Write 'options[0] = new Option('Все','all');'&vbCrLf ' ----в случае если товар не выбран
	' ---- выбираем названия товаров которые соответствуют текущему производителю
	SQL2 = 'Select DISTINCT(field2) from table Where field2=true and field1=''&CompName&'' ORDER BY field2'
	rs2.Open SQL2, con
	do while not rs2.EOF
	' --- выводим список товаров для <option>
	Response.Write 'options[options.length] = new Option(''&rs2('field2').value&'',''&rs2('field2').value&'');'&vbCrLf
	rs2.MoveNext
	Loop
	rs2.Close
Response.Write 'selectedIndex= 0;'&vbCrLf
Response.Write '}; break;'&vbCrLf
rs.MoveNext
CntCase = CntCase+1
Loop%>
}}-->
</script>
Форма имеет следующий вид:
[code]
<form name='srchform' action=/result.asp method=get>
<table><tr><td>Производитель</td><td width='50%'>
<select name='proizvoditel' onChange='javascript:OnSelect(this)'>
<option value='all' selected>Все </option>
<%rs.MoveFirst
Do while not r
0
0 / 0 / 0
Регистрация: 21.02.2008
Сообщений: 7
29.06.2009, 09:56 6
подскажите плиз как добавить третью позицию
0
29.06.2009, 09:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2009, 09:56
Помогаю со студенческими работами здесь

Нужно сделать так чтобы при выборе некоторых значений в первом select, изменялись значения второго select
Помогите пожалуйста мне нужно сделать так чтобы при выборе некоторых значений в первом select,...

Какое условие сделать чтобы от выбранного значения в select другой select принимал определенные значения?
выбираем например книгу и потом во втором select должно изменится значение &lt;label...

Перекидывание данных из одного <select>...</select> в другой
Yest dve korobki tipa &lt;select&gt;...&lt;/select&gt;: odna bitkom nabitaya dannimi s bazi dannih, a vtoraya...

Событие при изменении значения select
Доброе утро! Подскажите пожалуйста,что я делаю не так. Данный скрипт работает не всегда. Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru