Сохранение выбранного значения в чекбоксе после отправки в PHP
Давайте теперь сделаем так, чтобы значение
чекбокса сохранялось после отправки. Для
этого проверим, что $_GET['flag']
существует (то есть была отправка формы)
и равен единице (то есть флажок отмечен).
Если эти два условия выполняются, то выведем
в чекбоксе атрибут checked
:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag" <?php
if (isset($_GET['flag']) and $_GET['flag'] === '1')
echo 'checked';
?>
>
<input type="submit">
</form>
Проверку можно упростить, если мы точно знаем,
что скрытый инпут передает 0
. В таком
случае, если чекбокс не отмечен, то в $_GET['flag']
будет лежать '0'
, а если отправки
формы еще не было, то будет лежать null
.
В обоих этих случаях мы не должны выводить
checked
. И оба этих случая мы можем
поймать функцией empty
. Таким образом
мы можем проверить, что $_GET['flag']
не пуст, и только в этом случае вывести checked
:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag"
value="1"
<?php if (!empty($_GET['flag'])) echo 'checked' ?>
>
<input type="submit">
</form>
Сделайте три чекбокса, которые будут сохранять свое значение после отправки.