Доброго времени суток.
Хочу сделать зависимые select на странице. php + javascript. Только с помощью php вроде сложновато без перезагрузки страницы
Собственно сама функция:
| Код | <script> function selected_razdel() { x = document.getElementById("select_razdel"); y = document.getElementById("select_pod_razdel");
if(x.value == "A") { y.length = 0; el=document.createElement("OPTION"); y.options.add(el); el.appendChild(document.createTextNode("Одиннадцатое")); el.value="11"; el.selected = 'selected';
el=document.createElement("OPTION"); y.options.add(el); el.appendChild(document.createTextNode("Двенадцатое")); el.value="12";
} } </script>
|
Во втором select пока смысла нет, просто для проверки.
Сам рабочий код:
| Код | <? $db_file_name = 'okved.dbf'; // имя базы данных $db = dbase_open($db_file_name, 0); // открываем только для чтения if ($db) { // если открыли echo 'Подключились <br /><br />'; $record_numbers = dbase_numrecords($db); // количество записей // сделаем формы выбора echo '<select style="font-size:9" name="select_razdel" id="select_razdel" onChange="selected_razdel(this);">'."\n"; echo '<option style="font-size:9" value="A">Cделайте выбор'."\n"; for ($i = 1; $i <= $record_numbers; $i++) { $row = dbase_get_record_with_names($db, $i); if (preg_match("/^[A-Z] /", $row['KOD'])) { echo '<option style="font-size:9" valuе="'.preg_replace("/[^A-Z]/", "", $row['KOD']).'">'.$row['NAIM']."\n"; } } ?>
</select> <br><br><br><br> <? dbase_close($db); } else { // если не открыли echo 'Не подключились <br />'; } ?>
<select name="select_pod_razdel" id="select_pod_razdel"> <option value="0"> Сделайте выбор </select>
|
Специально отдельно сделал этот фрагмент (для проверки работоспособности):
| Код | echo '<option style="font-size:9" value="A">Cделайте выбор'."\n";
|
Вообщем после выполнения вот что будет в html коде:
| Код | <script> function selected_razdel() { x = document.getElementById("select_razdel"); y = document.getElementById("select_pod_razdel");
if(x.value == "A") { y.length = 0; el=document.createElement("OPTION"); y.options.add(el); el.appendChild(document.createTextNode("Одиннадцатое")); el.value="11"; el.selected = 'selected';
el=document.createElement("OPTION"); y.options.add(el); el.appendChild(document.createTextNode("Двенадцатое")); el.value="12";
} } </script>
Подключились <br /><br /><select style="font-size:9" name="select_razdel" id="select_razdel" onChange="selected_razdel(this);">
<option style="font-size:9" value="A">Cделайте выбор <option style="font-size:9" valuе="A">РАЗДЕЛ А СЕЛЬСКОЕ ХОЗЯЙСТВО, ОХОТА И ЛЕСНОЕ ХОЗЯЙСТВО <option style="font-size:9" valuе="B">РАЗДЕЛ В РЫБОЛОВСТВО, РЫБОВОДСТВО <option style="font-size:9" valuе="C">РАЗДЕЛ С ДОБЫЧА ПОЛЕЗНЫХ ИСКОПАЕМЫХ <option style="font-size:9" valuе="D">РАЗДЕЛ D ОБРАБАТЫВАЮЩИЕ ПРОИЗВОДСТВА <option style="font-size:9" valuе="E">РАЗДЕЛ Е ПРОИЗВОДСТВО И РАСПРЕДЕЛЕНИЕ ЭЛЕКТРОЭНЕРГИИ, ГАЗА И ВОДЫ <option style="font-size:9" valuе="F">РАЗДЕЛ F СТРОИТЕЛЬСТВО <option style="font-size:9" valuе="G">РАЗДЕЛ G ОПТ.И РОЗНИЧ.ТОРГОВЛЯ;РЕМОНТ АВТОТРАНСП.СР.,МОТОЦИКЛ.,БЫТ.ИЗДЕЛИЙ <option style="font-size:9" valuе="H">РАЗДЕЛ Н ГОСТИНИЦЫ И РЕСТОРАНЫ <option style="font-size:9" valuе="I">РАЗДЕЛ I ТРАНСПОРТ И СВЯЗЬ <option style="font-size:9" valuе="J">РАЗДЕЛ J ФИНАНСОВАЯ ДЕЯТЕЛЬНОСТЬ <option style="font-size:9" valuе="K">РАЗДЕЛ K ОПЕРАЦИИ С НЕДВИЖИМЫМ ИМУЩЕСТВОМ, АРЕНДА И ПРЕДОСТАВЛЕНИЕ УСЛУГ <option style="font-size:9" valuе="L">РАЗДЕЛ L ГОС.УПРАВЛЕНИЕ И ОБЕСПЕЧ.,ВОЕННОЙ БЕЗОПАСНОСТИ; ОБЯЗАТ,СОЦ.ОБЕСПЕЧЕНИЕ <option style="font-size:9" valuе="M">РАЗДЕЛ M ОБРАЗОВАНИЕ <option style="font-size:9" valuе="N">РАЗДЕЛ N ЗДРАВООХРАНЕНИЕ И ПРЕДОСТАВЛЕНИЕ СОЦИАЛЬНЫХ УСЛУГ <option style="font-size:9" valuе="O">РАЗДЕЛ O ПРЕДОСТАВЛЕНИЕ ПРОЧИХ КОММУНАЛЬНЫХ, СОЦИАЛЬНЫХ И ПЕРСОНАЛЬНЫХ УСЛУГ <option style="font-size:9" valuе="P">РАЗДЕЛ Р ПРЕДОСТАВЛЕНИЕ УСЛУГ ПО ВЕДЕНИЮ ДОМАШНЕГО ХОЗЯЙСТВА
<option style="font-size:9" valuе="Q">РАЗДЕЛ Q ДЕЯТЕЛЬНОСТЬ ЭКСТЕРРИТОРИАЛЬНЫХ ОРГАНИЗАЦИЙ
</select> <br><br><br><br>
<select name="select_pod_razdel" id="select_pod_razdel"> <option value="0"> Сделайте выбор </select>
|
Отсюда видно какие значения принимает value
Теперь собственно сама проблема: Если в первом select выбрать <option style="font-size:9" valuе="A">РАЗДЕЛ А СЕЛЬСКОЕ ХОЗЯЙСТВО, ОХОТА И ЛЕСНОЕ то во втором ни чего не измениться, а если <option style="font-size:9" value="A">Cделайте выбор то второй селект измениться... не могу понять чем отличаются параметры "А" от "А"? |