Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка селектов с помощью JavaScript
 
 автор: BerdArt   (19.07.2007 в 18:24)   письмо автору
 
 

Есть такие два селекта: один содержит название разделов, а другой названия подразделов. Задача: при выборе названия из первого селекта надо, чтобы во втором остались только подразделы, входящие в выбраный раздел. Т.к. на РНР это сделать неудобно (нехочу, чтобы страница перезагружалась), решил сделать на 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.

   
 
 автор: malish   (20.07.2007 в 10:11)   письмо автору
 
   для: 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;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования