|
|
|
| Есть такие два селекта: один содержит название разделов, а другой названия подразделов. Задача: при выборе названия из первого селекта надо, чтобы во втором остались только подразделы, входящие в выбраный раздел. Т.к. на РНР это сделать неудобно (нехочу, чтобы страница перезагружалась), решил сделать на JavaScript. Получился такой код:
<script language="JavaScript"> <!--
function check(val)
{
var scat=document.forms["add_prod"].subcat;
for (var i=0; i<scat.length; i++)
if (scat[i].id==val) scat[i].style.display="block";
else if (scat[i].value=="") scat[i].style.display="block"; else scat[i].style.display="none";
}
//--></script>
......
<form method=post action="./?page=handler_form" name="add_prod"><br>
.....
Раздел:
<SELECT name=category id=category
onchange="check(this.options[this.selectedIndex].value)">
<OPTION value="">Выберите раздел...</OPTION>
<OPTION =1>...</OPTION>
<!-- из таблицы MySQL выбираются названия разделов и в значения value вставляются номера разделов -->
</SELECT>
Подраздел:
<SELECT name=subcat id=subcat>
<OPTION value="" style="display: block">Выберите подраздел...</OPTION>
<OPTION id=1 value=1>...</OPTION>
<!-- из другой таблицы MySQL выбираются названия подразделов, в id помещен номер раздела, в который входит данный подраздел, а в value помещается номер подраздела -->
</SELECT>
...
|
Так вот это все работает только в Firefox, а в InternetExplorer и Opera в селекте Подраздел видимых изменений не происходит. Хотя с помощью алертов я установил что стили устанавливаются, т.е. яваскрипт срабатывает везде нормально, но все равно все значения второго раздела видны.
ЗЫ. Если во втором селекте подразделы объединить в группы с помощью тега <OPTGROUP label="название_раздела" id="номер_раздела">, то как в яваскрипте обратиться к этим тегам, чтобы изменить их видимость.
Заранее спасибо. С уважением, BerdArt. | |
|
|
|
|
|
|
|
для: BerdArt
(19.07.2007 в 18:24)
| | Меня вот это смущает
var scat=document.forms["add_prod"].subcat;
for (var i=0; i<scat.length; i++) ...
|
правильнее наверно будет
var scat=document.forms["add_prod"].subcat.options;
|
| |
|
|
|