Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Создать два связанных выпадающих списка

#1 Ирина267

Ирина267
  • Пользователь
  • 9 сообщений
  • Репутация: 0
0

Отправлено 08 Май 2012 - 21:44

Добрый вечер...У меня такая проблема...имеется форма ввода, необходимо создать два списка вид и категория,с одним списком проблем нет, информация подгружается из базы..а вот со вторым проблема...нужно чтобы подгружались данные из другого справочника с учетом выбранного варианта из первого списка...Есть две таблицы: вид (поля id и vid) и справочник(id, category, vid_id в этом поле храняться id из таблицы вид ). Помогите пожалуйста...

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 08 Май 2012 - 23:03

Ну так а в чем проблема? Вытаскиваете в выпадающий список виды, где значением каждого пункта списка будет id конкретного вида. Выбранный id передаете в обработчик (jajx'ом или по старинке) и по id выбираются нужные значения из справочника.
  • 0


#3 Ирина267

Ирина267
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

Отправлено 09 Май 2012 - 08:49

Я так и хочу сделать, но вот без jajx можно это как-то сделать??? я новичок...учусь ещё..
  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 09 Май 2012 - 10:55

Конечно можно. Вот пример в самом общем виде.
Скрипт:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
mysql_query("SET NAMES utf8");
// выбираем виды
$query = "SELECT * FROM view";
$res = mysql_query($query) or die(mysql_error());
$data = array();
while($row = mysql_fetch_assoc($res)){
// получаем массив видов
$data[] = $row;
}

if($_POST['submit']){
// выбираем данные из справочника
$id = (int)$_POST['id'];
$query = "SELECT category FROM catalog WHERE vid_id = $id";
$res = mysql_query($query) or die(mysql_error());

$category = array();
while($row = mysql_fetch_assoc($res)){
  // получаем массив данных из справочника
  $category[] = $row;
}
}
?>
<table border="1" width="500">
<tr>
  <td width="250">
  <form method="post" action="#">
   <select name="id">
	<? foreach($data as $item) : ?>
	<option value="<?=$item['id']?>"><?=$item['vid']?></option>
	<? endforeach; ?>
   </select>
   <p><input type="submit" name="submit" value="Отправить"></p>
  </form>
  </td>

  <td width="250">
   <? if($category) : ?>
	<? foreach($category as $item) : ?>
	 <p><?=$item['category']?></p>
	<? endforeach; ?>
   <? else : ?>
	<p>Выберите вид</p>
   <? endif; ?>
  </td>
</table>
На всякий случай скрины таблиц и скрипт с дампом прикладываю:

Прикрепленные изображения

  • view.jpg
  • catalog.jpg

Прикрепленные файлы

  • Прикрепленный файл  select.zip   18,55К   Количество загрузок: 79

  • 0


#5 Ирина267

Ирина267
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

Отправлено 09 Май 2012 - 13:50

Спасибо огромное...работает...вместо таблицы сделала второй выпадающий список...но маленькая проблема....извини, что опять помощи прошу...выбираю вид. нажимаю отправить...во втором списке подгружается то что нужно...но в первом поле все время остается первый в списке вид
  • 0

#6 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 09 Май 2012 - 15:40

Добавить проверку в цикл вывода списка - если id вида равняется содержимому переменной id, то делаем элемент списка выбранным. Вместо:
<option value="<?=$item['id']?>"><?=$item['vid']?></option>
Пишем:
<option <?php if($item['id'] == $id) echo selected ?> value="<?=$item['id']?>"><?=$item['vid']?></option>

  • 0


#7 Ирина267

Ирина267
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

Отправлено 09 Май 2012 - 18:59

Все сделала...спасибо огромное, без вас бы еще месяц думала....подставила все в свою форму....просить конечно уже не удобно....ещё одна проблема....попробую сама решить....
  • 0

#8 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 09 Май 2012 - 19:38

Попробуйте. Как говорится, лучший опыт - это свой опыт, приобретенный в процессе обучения методом проб и ошибок :D
Перед решением задачи не лишним будет продумать и составить алгоритм, можно даже на бумаге - он значительно облегчит и ускорит процесс ее решения.
  • 0


#9 Ирина267

Ирина267
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

Отправлено 09 Май 2012 - 20:22

Хех)))как-то без результатов...
  • 0

#10 Ирина267

Ирина267
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

Отправлено 09 Май 2012 - 20:54

Посмотрите пожалуйста....Эта моя форма ввода в базу данных...теперь такая проблема...при нажатии на кнопку "Выбрать" срабатывает скрипт, который должен срабатываться при нажатии "Добавить". Вопрос....вообще может ли быть два submit c двумя form в одной странице....Направьте на путь истинный....

Прикрепленные изображения

  • Новый рисунок.jpg

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru