Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   PHP (http://www.flasher.ru/forum/forumdisplay.php?f=20)
-   -   О списках <select> (http://www.flasher.ru/forum/showthread.php?t=49395)

Julia_1 22.09.2003 17:12

О списках <select>
 
Ребята, помогите, пожайлуста!
Как-нибудь можно связать два списка <select>.
То есть при выборе определенного элемента из первого списка
необходимо, чтобы второй список менял свои элементы.
Эти списки должны находится в одном form

Мне это надо для следующего:
Есть БД (пусть 2 связанные таблицы).
В первый список загружается инфо из поля первой таблицы с помощью "SELECT TABLE1 FROM BD".
А во второй список надо, чтобы выгружалась инфо из второй таблицы в соответствии с выбранным полем из первой.

Помогите, не знаю как сделать. Php недавно изучаю.

Crazy 22.09.2003 17:19

В чем именно проблема?

В том, как изменить второй select или в том, как загрузить требуемые для этого данные?

Julia_1 22.09.2003 17:31

Как изменить второй select!

Crazy 22.09.2003 17:43

Код:

<script>
function update_s2() {
  var selected = document.main.s1[document.main.s1.selectedIndex].value;
  document.main.s2.clear;
  var i;
  for(i=0; i<10; i++) {
    document.main.s2.options[i] = new Option(selected+" "+i,i,false,false);
  }
}
</script>
<form name="main">
  <select name="s1" onChange="update_s2()">
    <option value="a">foo</option>
    <option value="b">bar</option>
    <option value="c">buzz</option>
  </select>
  <select name="s2">
  </select>
</form>


Julia_1 22.09.2003 17:52

Большое спасибо! Я сейчас попробую это запустить.
Что это за язык <script> тут </script>?

Crazy 22.09.2003 17:57

Javascript.

Julia_1 22.09.2003 17:58

А не используя JavaScript как-нибудь можно сделать?

Crazy 22.09.2003 18:05

Цитата:

Оригинал написал(а) Julia_1
А не используя JavaScript как-нибудь можно сделать?
Можно. Где-то так (пишу без проверки):

PHP код:

<?php

if (isset($_POST['action'] && $_POST['action']!='') {
  
// Обрабатываем форму
}
else {
  
$s1selected = isset($_POST['s1'])?$_POST['s1']:'';
  
$s1options = array('a'=>'foo','b'=>'bar','c'=>'buzz');
  
?>
<form name="main" method="post" action="foo.php">
  <input type="hidden" name="action" value="something">
  <select name="s1" onChange="document.main.action.value=''; document.main.submit()">
  <?php
  
foreach($s1options as $key=>$value) {
    
$isSelected = ($key==$s1selected)?' selected':'';
    echo 
'<option'.$isSelected.' value="'.htmlspecialchars($key).'">'.htmlspecialchars($value).'</option>';
  }
  
?>
  </select>
  <select name="s2">
  <?php
    Выводим option
'ы для s2
  ?>
  </select>
</form>
<?php
}
?>


Julia_1 22.09.2003 18:12

Еще раз большое спасибо! Я уже сама проверю.
Мне надо было от чего-то оттолкнуться. :))


Часовой пояс GMT +4, время: 21:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.