проверка checkbox

  • Автор темы Михаил
  • Дата начала

Михаил

Guest
проверка checkbox

Подскажите как произвести проверку чекбокса на актуальность?
В HTML:
<form action=mail1.php method=post>
<input type="checkbox" name="с1" value="on">1<br>
<input type="checkbox" name="с2" value="on" >2<p>

в php:
if(isset($_POST['c1']) && !empty($_POST['c1'])));
{
$c1="1";
}
if(isset($_POST['c2']) && !empty($_POST['c2'])));
{
$c2="2";
}

Перепробовал массу предложенных вариантов. Либо значения не выводяться совсем, либо выводяться сразу все не зависимо отмечен секбокс или нет.
 

bgm

&nbsp;
У тебя ошибки в синтаксисе. Сравни:
PHP:
if ( isset($_POST['c1']) && !empty($_POST['c1']) )
{
$c1="1";
}
if ( isset($_POST['c2']) && !empty($_POST['c2']) )
{
$c2="2";
}
 

Lamer_Scorp

Guest
Это неправильные пчёлы и они делают неправильный мёд.

Убери вообще значение из чекбокса, не нада писать value="on". Чек-бокс сам передаст значение он, елис галочка будет поставлена.
 

Михаил

Guest
Ошибку в синтаксисе я поправил и value="on" убрал.
Выводит оба значения в любом случае не зависимо отмечено галкой или нет.
 

bgm

&nbsp;
Самое важное:
PHP:
<input type="checkbox" name="с1" value="on">1<br>
<input type="checkbox" name="с2" value="on" >2<p>
Смотри внимательно: у тебя в поле name - "c" - написано кириллицей.
К тому же: если чекбокс не отмечен, то его не будет в переменной $_POST. Следовательно достаточно сделать проверку на существование индекса:
PHP:
if (array_key_exists("c1",  $_POST)) {$c1="1";}
 

Lamer_Scorp

Guest
правильно, думать потому что нужно. чек бокс всегда isset() === True, потому как логический, или да, или нет. Поэтому он всегда будет и установлен и неравен Null, а знаичт подпадает под все твои условия.

правильно так

if ($_POST['c1'] == "on"){
}
 

Lamer_Scorp

Guest
impossible

да не будет чекбокс пустым, ты по что такой трудный! ОН или ДА, или НЕТ. пустым он быть не может.
 

tashkentchi

Новичок
Или так:
PHP:
$c1 = 0;
$c2 = 0;
foreach ($_POST as $key => $val) {
   if ($key == 'c1') $c1 = 1;
   if ($key == 'c2') $c2 = 1;
}
 

Lamer_Scorp

Guest
tashkentchi


вариант. но слишком сложный и длинный для элементарной задачи.
 

bgm

&nbsp;
поясни точку зрения.
Потому что если checkbox не отмечен, то он не передаётся в скрипт. Следовательно, твой вариант в случае не отмеченного checkbox'a, приведёт к ошибке: Undefined index
 

Lamer_Scorp

Guest
bgm


Ты это моим скриптам скажи. Они тебя не поймут.

Как я уже сказал чек-бокс не может не быть незаполнен. елси отмечен.
 

bgm

&nbsp;
Как я уже сказал чек-бокс не может не быть незаполнен. елси отмечен.
Ты читать умеешь? Или просто торопишься?

Прочти медленно и внимательно:

твой вариант в случае не отмеченного checkbox'a, приведёт к ошибке: Undefined index
 
Сверху