Телефон: +7 (926) 245-03-63

PHP проверка checkbox на форме + примеры

PHP проверка checkbox на форме + примеры
PHP проверка checkbox на форме + примеры

Следующая статья: Как в PHP сменить права у файла?

php проверка checkbox, php, html, input, checked

Содержание Checkbox на странице

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».

Внимание! Если у вас будет 10 checkbox`ов, то будете уже не лицеприятно удивлены, как быстро начнет увеличиваться ваш html код, а некоторые браузеры покрутят пальцем возле вашего виска.

Как правильно проверять 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 можно применять разные способы, но об этом в отдельной статье.

Интересное в интернете: Цыганская любовная магия под руководством целительницы. Звоните