[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: передача данных через раскрывающийся список
beabss
Всем доброго дня. Вопрос следующий на листе с ассортиментом присутствует раскрывающийся список со значениями
if (isset($assortiment['specifical_id']))
{
print ("<table><tr><td width=280px>$assortiment[short_name]
</td><td>

<select size='1' name='list[]'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='7'>7</option>
</select>

</td></tr></table>"
);

}

данные передаются обработчику. Вот часть кода

foreach ($_POST['list[]'] as $val)

{

$li = mysql_query ("SELECT * FROM `assort` WHERE `ID` = '$val'") or die(mysql_errors());
$limit = mysql_fetch_array ($li);
$res = mysql_query ("INSERT INTO result_details (result_id, prod_id, reas) VALUES ($id, $val, 1)");

print ("<table weght=280px align='center' ><tr>$limit[short_name]</tr></table><br>");

}


но обработчик выдает ошибку
Warning: Invalid argument supplied for foreach() in K:\home\localhost\www\new_merch\result.php on line 40

Подскажите что делать???



Спустя 16 минут, 13 секунд (25.04.2011 - 10:40) kirik написал(а):
Цитата (beabss @ 25.04.2011 - 03:23)
Подскажите что делать???

Попробуйте заменить $_POST['list[]'] на $_POST['list'].
Ещё странно выглядит name='list[]', а так же у вас вероятно дырка ввиде sql инъекции: SELECT * FROM `assort` WHERE `ID` = '$val'..

Спустя 14 минут, 52 секунды (25.04.2011 - 10:54) beabss написал(а):

Попробуйте заменить $_POST['list[]'] на $_POST['list']. - работает

Но есть проблема мне необходимо чтобы вместе со значение из списка передовался id товара напротив которого он стоит.

Спустя 1 час, 28 минут, 58 секунд (25.04.2011 - 12:23) beabss написал(а):
сделал так:
if (isset($assortiment['specifical_id']))
{
$b = $assortiment[id];
print ("<table><tr><td width=280px>$assortiment[short_name]
</td><td>

<select size='1' name='list[
$b]'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='7'>7</option>
</select>

</td></tr></table>"
);

}



 foreach ($_POST['list'] as $val)
printf ("$val<br>");

{

$li = mysql_query ("SELECT * FROM `assort` WHERE `ID` = '$val'") or die(mysql_errors());
$limit = mysql_fetch_array ($li);
$res = mysql_query ("INSERT INTO result_details (result_id, prod_id, reas) VALUES ($id, $val, 1)");

print ("<table weght=280px align='center' ><tr>$limit[short_name]</tr></table><br>");

}



Но ничего не получается.

Спустя 38 минут, 55 секунд (25.04.2011 - 13:02) linker написал(а):
if (isset($_POST['list']))
{
list($id, $val) = each($_POST['list']);
...

}

Спустя 11 минут, 36 секунд (25.04.2011 - 13:14) beabss написал(а):
Пишет таку вот ошибку
Parse error: syntax error, unexpected $end in K:\home\localhost\www\new_merch\result.php on line 59

Спустя 2 минуты, 49 секунд (25.04.2011 - 13:17) linker написал(а):
Где-то фигурную скобку не закрыл.

Спустя 5 минут, 23 секунды (25.04.2011 - 13:22) beabss написал(а):
а этот код правильный??

while ($assortiment = mysql_fetch_array ($assort))

{

if (isset($assortiment['specifical_id']))
{
$b = $assortiment[id];
print ("<table><tr><td width=280px>$assortiment[short_name]
</td><td>

<select size='1' name='list[
$b]'>
<option value='7'>7</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>

</td></tr></table>"
);

}
}


Может еще сдесь что не так.
А там правда скобку упустил.

Спустя 4 минуты, 55 секунд (25.04.2011 - 13:27) beabss написал(а):
как передать и id и значение в номер причины из списка???

Спустя 2 минуты, 16 секунд (25.04.2011 - 13:29) nugle написал(а):
beabss
а у вас этот код работает?
мне вот это вот не нравится
$assortiment[id]

мне кажется так правильно
$assortiment['id']

Спустя 57 секунд (25.04.2011 - 13:30) beabss написал(а):
да работает.

Спустя 16 минут, 51 секунда (25.04.2011 - 13:47) beabss написал(а):
И всетаки как правильно передать postom в id товара и номер причины в одном массиве.

Спустя 4 часа, 3 минуты, 5 секунд (25.04.2011 - 17:50) liw написал(а):
Есть код:
<option value='id'>num</option>

Если ты хочешь передать и id и num то тут или использовать javascript,
или просто делать value вида id.num а потом это добро парсить
<option value='id.num'>num</option>
Быстрый ответ:

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