[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как правильно передать checkbox ?
dimonise
есть такой вот кусок скрипта:
PHP
$result5 =  mysql_query("SELECT * FROM tovar WHERE category ='$cat'",$db);
 if (!
$result5)
{
echo 
"<p> Запрос не может быть выполнен! Напишите админу! <br><strong> Код ошибки:</strong></p>";
exit (
mysql_error);
}

if(
mysql_num_rows($result5)>0){


$myrow5 mysql_fetch_array ($result5);
echo 
"<table border='0' ><form action='sravny.php' method='post' enctype='multipart/form-data' name='form0'>";
do  

{
printf ("<tr class='text'><td><input type='checkbox' name='myrow[]' value='".$myrow5['id']."' >
        <img src='%s' width='45' height='45' name='im' id='im'></td><td>
        <a href='full_tovar.php?id=%s' class='text' name='full' id='full'> %s</a></td>
        <td>%s</td><td>%s</td></tr>" 
,$myrow5['img'],$myrow5['id'],$myrow5['name'],$myrow5['prise'],$myrow5['producer']);
}
while (
$myrow5=mysql_fetch_array ($result5));

}
else {
echo 
" В таблице нет записей! Выполнение программы невозможно! ";
echo 
"<br><br> <a href='view_cat.php?cat=2' style='text-decoration:none; '> Назад </a>";
exit ();
}
echo  
"<input type='submit' value=' сравнить '></form></table>";


вот обработчик
PHP
<?php 
 
include ("blocks/info.inc.php"); 
$chek $_POST['myrow'];

$result7 =  mysql_query("SELECT * FROM tovar WHERE id='$chek'",$db);

$myrow7 mysql_fetch_array ($result7);


echo 
"<table border='0' >";
do  

{
printf ("<tr class='text'><td>
        <img src='%s' width='45' height='45' name='im' id='im'></td><td>
        <a href='full_tovar.php?id=%s' class='text' name='full' id='full'>%s</a></td>
        <td>%s</td><td>%s</td></tr>" 
,$myrow7['img'],$myrow7['id'],$myrow7['name'],$myrow7['prise'],$myrow7['producer']);
}
while (
$myrow5=mysql_fetch_array ($result7));

echo 
"</table>";

но ничего не передается sad.gif



Спустя 15 минут, 58 секунд (23.08.2009 - 12:53) Kuliev написал(а):
dimonise
Посмотрите что у вас в массиве
PHP
echo "<pre>";
print_r($_POST['myrow']);
echo 
"</pre>";





Спустя 2 часа, 35 минут, 25 секунд (23.08.2009 - 15:28) Fratyr написал(а):
В первое время сам имел затруднения с чекбоксами.

Советую проверить так:
1) Убедись, что чекбокс находится в пределах тэгов формы
2) Убедись, что у чекбокса корректное имя
3) Сделай print_r( $_POST ) когда постишь свою форму

По идее, если чекбокс НЕ отмечен, то ничего не приходит вообще ( или же элемент в посте будет пустым ), если же он приходит, то будет примерно так:
Array ( ["check"] => "on" )

т.е $_POST[ "check" ] имеет значение "on" если он отмечен, или пустую строчку, если не отмечен.

smile.gif

Спустя 4 часа, 32 минуты, 8 секунд (23.08.2009 - 20:00) Nikitian написал(а):
Чекбоксам всегда надо давать определённое value, т.к. разные браузеры передают разные значения по умолчанию. А в обработке формы уже проверять существование переменной и её равенство нужному значению. Если чекбоксов много, то проще использовать массивы так:
HTML
.....
<input type="checkbox" name="ch[]" value="1" />
<input type="checkbox" name="ch[]" value="2" />
<input type="checkbox" name="ch[]" value="3" />
<input type="checkbox" name="ch[]" value="4" />
<input type="checkbox" name="ch[]" value="5" />
<input type="checkbox" name="ch[]" value="6" />
.....

А потом в обработчике смотрите элементы массива $_POST['ch']

Спустя 13 часов, 46 минут, 31 секунда (24.08.2009 - 09:47) Fratyr написал(а):
Верно, забыл smile.gif
Благодарю за поправку smile.gif
Быстрый ответ:

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