Запазване на избраната стойност в checkbox след изпращане в PHP
Нека сега направим така, че стойността
на checkbox да се запазва след изпращане. За
това ще проверим дали $_GET['flag']
съществува (тоест има изпращане на форма)
и е равна на единица (тоест квадратчето е отметнато).
Ако тези две условия са изпълнени, ще изведем
в checkbox атрибута 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. В такъв
случай, ако checkbox не е отметнат, то в $_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>
Направете три checkbox-а, които ще запазват стойността си след изпращане.