Сохранение выбранного значения в чекбоксе после отправки в 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>

Сделайте три чекбокса, которые будут сохранять свое значение после отправки.