Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2013, 09:19   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Вопрос Передача данных посредством выпадающего списка(POST)

Здравствуйте уважаемые программисты, по средствам php загружаю информацию из БД в выпадающий список, нужно осуществить чтобы при выборе "Наименования" из выпадающего списка "Дата" соответствующая этому наименованию отобразилась в поле типа (Text).
Структура таблицы:
Код:
-id (передается как скрытый параметр)
-name (наименование)
-date (дата наименования)
Вот как я это пытался реализовать:
PHP код:
<?php
echo "<form name= Naim_Mat action='AddForm.php' method='POST'>
<FONT size=3>Наименование этапа:</font>
<select name='Naim_mat' size='1' style='width: 620px' onchange='this.form.submit()'/>"
;

$query ="SELECT id, name FROM tb_hist";
$result pg_query($con$query);
 while (
$row pg_fetch_array($result))
 {
   echo 
"<option selected value=\"".$row['name']."\">".$row['name']."</option>";          
echo 
'<input name=\'id\' type=\'hidden\' value=\''.$row['id'].'\'>'
 } 
echo 
"</select></form>";
?>
То есть я передавал id как скрытый параметр на эту же форму.
А далее идет уже вторая часть php-кода где я должен по id отобразить соответствующую "Дату":
PHP код:
<?php
if (isset($_POST['id']))
{
  
$zapros "SEECT id, date FROM tb_hist WHERE id=".$_POST['id'];
  
$rez pg_query($con$zapros); 
   while (
$rows pg_fetch_array($rez))
     {
        echo 
"<input type=text name=\"Datestg\" value=\"".$rows['date']."\" size=15 maxlength=10><br>";
     } 
}
?>
В этом случае в списке отображает только одно наименование а текстовое поле вообще не отображает, в чем ошибка уважаемые, я подозреваю что не передается мой скрытый параметр.
manula вне форума Ответить с цитированием
Старый 06.03.2013, 09:35   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

size='1' из <select> нужно убрать.
Скрытый параметр тоже не нужен – достаточно передать id выбранного пункта через <select>:
PHP код:
echo '<option value="' $row['id'] . '">' $row['name'] . '</option>'
В обработчике получаем этот id через $_POST['Naim_mat'].

Такие вот динамические формы удобнее реализовать через AJAX, без перезагрузки страницы.
Это очень просто – и примеров в Гугле море.

PS: во втором запросе синтаксическая ошибка: "SEECT id", названия таблиц и полей экранируем обратными кавычками: `id`, `date` и т.д.

Последний раз редактировалось Andkorol; 06.03.2013 в 09:38.
Andkorol вне форума Ответить с цитированием
Старый 06.03.2013, 10:25   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Благодарю за помощь не увидел просто опечатку и учел ваши замечания, но теперь вопрос вот какой, у меня получается две формы, и одна находится в другой, так при выборе значения из списка меня перекидывает на другую страницу,вот к примеру:
PHP код:
  <form name='MainMenu' action='Main.php' method='POST'>
 
   echo 
"<form name='Naim_Mat' action='AddForm.php' method='POST'>";
   echo 
"</form>";

  </
form
При нажатии на список меня перебрасывает на форму Main.php, не могли бы объяснить почему?
manula вне форума Ответить с цитированием
Старый 06.03.2013, 10:41   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Формы в форме не должно быть.
Andkorol вне форума Ответить с цитированием
Старый 06.03.2013, 14:15   #5
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

А можно еще такой вопрос задать при выборе из списка информация которую я выбрал должна быть выбелена, а получается что дата то загружается, а вот в списке отображается первое значение, как это исправить
manula вне форума Ответить с цитированием
Старый 06.03.2013, 14:30   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

При формировании <option> сравнивай текущий id с тем, который получен через POST.
При совпадении – отмечай этот <option> атрибутом selected, примерно так:
PHP код:
$selected = ($row['id'] == $_POST['id']) ? 'selected' :  '';
echo 
'<option value="' $row['id'] . '" ' $selected ' >' $row['name'] . '</option>'
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача POST данных. lansh PHP 3 03.03.2013 16:59
Копирование данных из выпадающего списка _ArtemKA_ Microsoft Office Excel 5 18.01.2013 18:17
Передача выбранной строки из выпадающего списка в следующий обработчик (страницу) Des PHP 1 07.11.2010 21:33
Передача данных методом POST batusai PHP 2 30.10.2010 03:04
Передача данных Post на HTTPS talero Работа с сетью в Delphi 11 16.12.2009 03:06