Захаванне абранага значэння ў чэкбоксе пасля адпраўкі ў 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>
Зрабіце тры чэкбоксы, якія будуць захоўваць сваё значэнне пасля адпраўкі.