Следующая статья: Как в PHP сменить права у файла?
php проверка checkbox, php, html, input, checked
Содержание Checkbox на странице
- Checkbox и php
- HTML checkbox
- Проверка checkbox на PHP - вариант 1
- Как проверить checkbox на PHP - вариант 2
- Как правильно проверять checkbox на PHP - вариант 3
Checkbox и php
Сразу скажу, что есть несколько вариантов проверки данного хозяйства. Давайте сразу к делу.
HTML checkbox
Хотелось бы отметить, что многие изначально совершают ошибки и пишут не правильно html checkbox. То есть начитавшись в Интернет информации 10 летней давности пишут всякую охинею. Согласно одного из последних строгих DOCTYPE, который пытается нас сопроводить в эпоху HTML5 checkbox правильно пишется следующим образом:
<input type="checkbox" name="checkme" checked="checked" />
Обратите внимание, id в input объекте нет! Согласно последним стандартам к таким html объектам нужно обращаться через свойство name. Также обратите внимания, что нет и value, при type="checkbox" это значение не прописывается. Оно по умолчанию =0. То есть нет смысла его указывать, если не требуется выставить, что либо принудительно. Пишите правильно и тогда все браузеры будут корректно передавать 0 или 1 в ваш PHP код.
Речь идет о стандарте: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">, в других стандартах DOCTYPE данный объект может писаться по другому. Смотрите внимательно спецификацию.
Проверка checkbox на PHP - вариант 1
Предположим, что у Вас есть форма такого типа:
<form action="page.php" method="post"> … <input type="checkbox" name="checkme" value="on" /> … <input type="submit" value="ok"> </form>
После нажатия на кнопку «ok» данные передаются скрипту page.php. В скрипте page.php выполняем проверку на предмет, был ли отмечен чекбокс, то есть выглядит это примерно так:
<?php
…
if (isset($checkme) && strlen($checkme)>0)// здесь «checkme» - имя чекбокса
{ … // если чекбокс отмечен, выполняем какие-то действия
}
…
?>
Как проверить checkbox на PHP - вариант 2
Есть еще один способ сделать это, более простой, но также не лучшее решение в форме, а именно перед тегом <input type="checkbox"> поместить тег <input type="hidden"> с тем же самым значением параметра «name»:
<form …> … <input type="hidden" name="checkme" value="0"> <input type="checkbox" name="checkme" value="1"> … </form>
Теперь если checkbox установлен, в переменной $checkme передастся «1», в противном случае «0».
Как правильно проверять checkbox на PHP - вариант 3
Теперь рассмотрим как же должно быть правильно все проверяться.
Для начала, нужно форму сделать согласно стандартам консорциума W3C
Код html:
<form action="page.php" method="post"> <input type="checkbox" name="checkme" checked="checked" /> <- правильно пишем input согласно стандартам </form>
Код PHP:
function checkbox_verify($_name)
{
$result=0;// обязательно прописываем, чтобы функция всегда возвращала результат
// проверяем, а есть ли вообще такой checkbox на html форме, а то часто промахиваются
if (isset($_REQUEST[$_name]))
{ if ($_REQUEST[$_name]=='on') { $result=1; } else { $result=0; }
}
return $result;
}
В итоге, вызов получается очень простым:
echo checkbox_verify('checkme');
Можно php код еще меньше написать, но я расписал для наглядности. Пользуйтесь на здоровье.
P.S. Для обработки массивов checkbox можно применять разные способы, но об этом в отдельной статье.