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

HTML+CSS+JavaScript

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

 

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

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

тема: Помогите с обновлением select
 
 автор: Nigma07   (31.01.2008 в 04:25)   письмо автору
 
 

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

<form action="scategory.php" method="POST">
<select name="otheme">
<?php
$sql 
"SELECT `theme` FROM `theme_razdel`"
    include 
"conf1.php"//подключение к базе
 
while($row mysql_fetch_assoc($rs))  
 
   {   
$ad $row['theme'];
          print
" <option>$ad</option>";
   } 
       
mysql_close($conn);
?>
</select>

//и другой select

<select name="d_theme">
<?php
$sql 
"SELECT `theme_podr`.`podrazdel` 
FROM `theme_razdel` , `theme_podr` 
WHERE `theme ........."
;
include 
"conf1.php";         
        
 while(
$row mysql_fetch_assoc($rs))  
    {   
$ad1 $row['podrazdel'];
                   
        print
" <option>$ad1</option>";
    } 
mysql_close($conn);
?>
</select> 
<br><input TYPE="submit" name="sudadd" VALUE="ШАГ2">
</form>

   
 
 автор: Director_Of_Zoo   (31.01.2008 в 09:28)   письмо автору
 
   для: Nigma07   (31.01.2008 в 04:25)
 

У тебя будет второй селект забивать после перезагрузки страницы? или просто javascript? или будет подгружаться ajax?
И как то странно сделано... у тебя тема не привязана к id?
print" <option>$ad</option>"; 

я бы сделал
print" <option value='тут этот id'>$ad</option>"; 

   
 
 автор: Nigma07   (31.01.2008 в 22:40)   письмо автору
 
   для: Director_Of_Zoo   (31.01.2008 в 09:28)
 

>У тебя будет второй селект забивать после перезагрузки страницы? или просто javascript? или будет подгружаться ajax?
>И как то странно сделано... у тебя тема не привязана к id?

id вставить не трудно, а вот как это все прописать?
Мне не важно, будет перезагружаться страница или нет. Главное, чтобы при событии onChange() первого select_а обновлялся второй, т.е происходила выборка из БД. Второй не будет забивать первый.

Пишу магазин и у меня в 1-selecte например "Бытовая техника", а во 2 по условию выбираются "Холодилники, Пылесосы ........"

С кнопкой обновить сделал, все работает, а все ж хочеться чтоб само.

Сколько не читал JavaScript, понять не могу его, да и на форуме порыскал - ничего не нашел. Может запрос писал неправильно!

   
 
 автор: Nigma07   (01.02.2008 в 06:20)   письмо автору
 
   для: Director_Of_Zoo   (31.01.2008 в 09:28)
 

Может подскажите как передать данные из формы в PHP, чтоб выглядело примерно так:

scategory.php?vibor='document.form1.d_theme.value ' ;
<form action="scategory.php" method="GET" name="form1">
<select name="otheme" OnChange="(  document.form1.d_theme.value )">
<option >Привет</option>
<option >Пока</option>
</select> 

   
 
 автор: Director_Of_Zoo   (01.02.2008 в 13:01)   письмо автору
 
   для: Nigma07   (01.02.2008 в 06:20)
 

я так понимаю, если магазин то лучше сделать с использованием ajax.
Схема такая:
событие onchange() посылает ajax запрос на сервер. Получает данные в виде, например, уже готового HTML кода (так будет проще).
Полученый HTML код с помощью функции обработчика выводится в некий блок:
<div id='secondSel'>
</div>

Допустим с сервера при выборе пришли данные, которые мы загнали в переменную RespondSel:
<select name="d_theme">
<option id=1>Холодилники</option>
<option id=2>Пылесосы</option>
</select> 

В обработчике просто задаёшь
document.GetElementById('secondSel').innerHTML = RespondSel;

собственно и все решение.

Можно конечно использовать DOM и передавать данные с помощью XML, но это уже сложнее.

В любом случае для экономии трафика конечного пользователя советую использовать именно AJAX , поэтому расписал про него. Надеюсь понятно.

   
Rambler's Top100
вверх

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