[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не отображаются значения в теге Select. Почему?
baston
Есть таблица в MySQL, содержащая 15 категорий продуктов. Мне нужно выбрать их из таблицы и поместить в выпадающий список (тег select) на странице в форме.
Однако список получается пустым. Точнее, в нем не отображаются значения. Хотя эти значения однозначно существуют и выбираются из базы.
Пожалуйста, подскажите в чем причина такого поведения? Спасибо.
Выбираю и помещаю значения так:
<?php 
//Подключаемся к серверу и БД
include "config.php";
//Формируем запрос к БД
$query = "SELECT * FROM `product_cat`";
//Отправляем запрос
$res = mysql_query($query);
//Проверяем успешность запроса
if(!$res) exit("Ошибка запроса: ".mysql_error());
//Проверяем наличие записей
if(mysql_num_rows($res)>0)
{
?>
<html>
<head>
<title>
Добавление нового продукта в БД</title>
</head>
<body>
<h2>
Добавить продукт:</h2>
<form
name="addproduct" action="addproduct.php" method="post">
<table>
<tr>
<td
align=right>Наименование продукта: </td>
<td><input
type=text name=nameproduct size=50></td>
</tr>
<tr>
<td
align=right>Категория продукта: </td>
<td><select
name=productcat>
<?php
// В цикле выводим опции селекта
while($prod_cat = mysql_fetch_array($res)) { ?>
<option
value="<?php $prod_cat['id_prod_cat'] ?>"><?php $prod_cat['name_product_cat'] ?></option>
<?php
}} ?>
</select></td>
</tr>
</table>
</form>
</body>
</html>

P.S. При этом в таком коде все отображается:
<?php 
//Подключаемся к серверу и БД
include "config.php";
//Формируем запрос к БД
$query = "SELECT * FROM `product_cat`";
//Отправляем запрос
$res = mysql_query($query);
//Проверяем успешность запроса
if(!$res) exit("Ошибка запроса: ".mysql_error());
//Проверяем наличие записей
if(mysql_num_rows($res)>0)
{
echo "<select name=productcat>";
// В цикле выводим опции селекта
while($prod_cat = mysql_fetch_array($res))
{
echo "<option>".$prod_cat['name_product_cat']."</option>";
}
echo "</select>";
}





Спустя 4 минуты, 4 секунды (28.04.2010 - 21:43) sergeiss написал(а):
А почему ты считаешь, что вот это
Цитата (baston @ 28.04.2010 - 22:39)
<?php $prod_cat['id_prod_cat'] ?>

будет что-то выводить???
Надо так:
<?php echo $prod_cat['id_prod_cat'] ?>

Спустя 8 минут, 3 секунды (28.04.2010 - 21:51) baston написал(а):
sergeiss
Спасибо, а то уже голова разболелась - не могу сообразить, в чем дело. Добавил эхо в вывод в селект и отобразилось.
Думал, сработает как обычная подстановка.

Спустя 18 часов, 10 минут, 38 секунд (29.04.2010 - 16:02) baston написал(а):
И вопрос совсем чайницкий: как получить выбранное в option значение?
Понимаю, что так:
$sel_opt = $_POST['productcat'];
echo $sel_opt;

Но переменная в другой скрипт не передается...

Спустя 1 минута, 50 секунд (29.04.2010 - 16:04) DedMorozzz написал(а):
а как ты передаёшь его(иль её)?

Спустя 3 минуты, 12 секунд (29.04.2010 - 16:07) baston написал(а):
Да, в том-то и дело, что даже не могу прочитать об этом и понять, как же передать выбранное значение в переменную. Такой ступор, что мама не горюй! Вроде бы не мальчик уже в PHP, а ступор...
Можете хотя бы алгоритм подсказать для перезагрузки мозгов?
Мой скрипт в первом сообщении.
Спасибо.

Спустя 36 минут, 46 секунд (29.04.2010 - 16:44) baston написал(а):
Значения должны передаваться по клику на кнопке. Обработчик - файл, указанный в теге action формы. Но данные не передаются, вот в чем беда...

Спустя 6 минут, 18 секунд (29.04.2010 - 16:50) DedMorozzz написал(а):
<select name="productcat">

т.е. возьми в кавычки.
$myvariable=$_POST['productcat'];
echo $myvariable;

Спустя 5 минут, 47 секунд (29.04.2010 - 16:56) baston написал(а):
Взял - безрезультатно. Null в выводе.

Спустя 3 минуты, 26 секунд (29.04.2010 - 16:59) DedMorozzz написал(а):
<form method="post" action="test.php">

<
b>test:</b> <select name="ctrlCompareSearchFrame">
<
option value="1">1 or under</option>
<
option value="aa">2</option>
<
option value="bb">3</option>
</
select>

<
INPUT TYPE="submit" VALUE="Послать">
</
form>
<?php
$agenumber=$_POST['ctrlCompareSearchFrame'];
echo $agenumber; //выводит всё
?>

Спустя 1 минута, 45 секунд (29.04.2010 - 17:01) DedMorozzz написал(а):
кстати, там Сергей сказал уже добавить ечо. Покажи свой НЫНЕШНИЙ код

Спустя 2 часа, 20 минут, 14 секунд (29.04.2010 - 19:21) baston написал(а):
Прошу прощения за задержку, только что приехал с работы.
Вот код с формой:
//Подключаемся к серверу и БД
include "config.php";
//Формируем запрос к БД
$query = "SELECT * FROM `product_cat`";
//Отправляем запрос
$res = mysql_query($query);
//Проверяем успешность запроса
if(!$res) exit("Ошибка запроса: ".mysql_error());
//Проверяем наличие записей
if(mysql_num_rows($res)>0)
{
?>
<html>
<head>
<title>
Добавление нового продукта в БД</title>
</head>

<body>
<h2>
Добавить продукт:</h2>
<form
name="addproduct" action="addproduct.php" method="post">
<table>
<tr>
<td
align=right>Наименование продукта: </td>
<td><input
type=text name="nameproduct" size=50></td>
</tr>
<tr>
<td
align=right>Категория продукта: </td>
<td><select
name="productcat">

<?php
// В цикле выводим опции селекта
while($prod_cat = mysql_fetch_array($res)) { ?>
<option
value="<?php echo $prod_cat['id_prod_cat'] ?>"><?php echo $prod_cat['name_product_cat'] ?></option>
<?php
}} ?>
</select></td>
</tr>
<tr>
<td></td>
<td><input
type=submit name=submit value=Добавить></td>
</tr>
</table>
</form>
</body>
</html>
А это код обработчика, указанного в action:
$sel_opt = $_POST['productcat'];
echo $sel_opt;
var_dump($sel_opt);

Спустя 14 минут, 41 секунда (29.04.2010 - 19:36) baston написал(а):
Приношу свои извинения еще раз за беспокойство. Как только я запустил скрипт в браузере, то все корректно отобразилось.

До этого я проверял через PHP Expert Editor и он мне, паразит, возвращал Null. Не думал, что проверять в нем работу скрипта (более сложного, чем Hello, World) чревато.

Всем огромное спасибо за помощь.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.