การบันทึกค่าที่เลือกในช่องทำเครื่องหมายหลังจากส่งใน 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>
สร้างช่องทำเครื่องหมายสามช่อง ซึ่งจะบันทึก ค่าของพวกมันไว้หลังจากส่ง