Lưu giá trị đã chọn trong checkbox sau khi gửi trong PHP
Bây giờ hãy làm sao để giá trị của
checkbox được lưu sau khi gửi. Để
làm điều này, hãy kiểm tra xem $_GET['flag']
có tồn tại (tức là biểu mẫu đã được gửi)
và bằng một (tức là hộp kiểm đã được đánh dấu).
Nếu hai điều kiện này đều đúng, thì hãy xuất ra
thuộc tính checked trong checkbox:
<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>
Việc kiểm tra có thể được đơn giản hóa nếu chúng ta biết chắc chắn rằng,
input ẩn truyền 0. Trong trường hợp đó,
nếu checkbox không được đánh dấu, thì trong $_GET['flag']
sẽ là '0', và nếu biểu mẫu chưa được gửi,
thì sẽ là null.
Trong cả hai trường hợp này, chúng ta không nên xuất ra
checked. Và cả hai trường hợp này chúng ta đều có thể
bắt được bằng hàm empty. Như vậy,
chúng ta có thể kiểm tra xem $_GET['flag']
có không rỗng không, và chỉ trong trường hợp đó mới xuất ra 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>
Hãy tạo ba checkbox, chúng sẽ lưu giá trị của mình sau khi gửi.