การเลือก Input ที่สัมพันธ์กันกับ Checkbox ที่เลือกเมื่อ Submit
มีคำถามจากบอร์ดว่า จะทำอย่างไร ถ้าต้องการ เลือกข้อมูลจาก Input text เฉพาะที่สัมพันธ์กันกับตัว Checkbox ที่ถูกเลือกเท่านั้น เมื่อตอน Submit
ปกติแล้ว input ชนิด checkbox เมื่อถูก submit จะมีการส่งไปเฉพาะรายการที่ถูกเลือกเท่านั้นครับ เราจึงสามารถใช้กรณีนี้เพื่อตรวจสอบว่า ระบบจะต้องบันทึกข้อมูลเฉพาะตัวที่ถูกเลือกเท่านั้นได้โดยการตรวจสอบ key ของ checkbox ที่ตรงกับ key ของ input text
โค้ดฟอร์มด้านบนที่ใช้ก็ปกติแหละครับ แต่มีที่แนะนำอยู่อย่างหนึ่งคือ เพื่อต้องการให้ชัวร์ว่า checkbox อันไหน สัมพันธ์กับ input ตัวไหน เลยต้องระบุ id ของ input แต่ละตัวให้ชัดเจนไปเลย
แนวคิดการรับค่าก็คือ ปกติแล้ว รายการ checkbox ที่ส่งมา จะส่งมาเฉพาะรายการที่ถูกเลือกเท่านั้น ดันนั้น เราก็ทำการอ่าน key ของตัวที่ถูกเลือก แล้วนำ key ไปเลือก input ที่ต้องการอีกที โดยการใช้ความสามารถของ Array ธรรมดาครับ
ปกติแล้ว input ชนิด checkbox เมื่อถูก submit จะมีการส่งไปเฉพาะรายการที่ถูกเลือกเท่านั้นครับ เราจึงสามารถใช้กรณีนี้เพื่อตรวจสอบว่า ระบบจะต้องบันทึกข้อมูลเฉพาะตัวที่ถูกเลือกเท่านั้นได้โดยการตรวจสอบ key ของ checkbox ที่ตรงกับ key ของ input text
// form
echo '<form method=post action=?>';
for ($i = 0; $i < 5; $i++) {
echo '<p><input type=checkbox name=chk['.$i.'] '.(isset($inp[$i]) ? ' checked' : '').'><input type=text name=INP['.$i.'] value="Test'.$i.'"></p>';
}
echo '<p><input type=submit value=Send></p>';
echo '</form>';
โค้ดฟอร์มด้านบนที่ใช้ก็ปกติแหละครับ แต่มีที่แนะนำอยู่อย่างหนึ่งคือ เพื่อต้องการให้ชัวร์ว่า checkbox อันไหน สัมพันธ์กับ input ตัวไหน เลยต้องระบุ id ของ input แต่ละตัวให้ชัดเจนไปเลย
$inp = array();
foreach ($_POST['chk'] AS $key => $value) {
// รับเฉพาะรายการที่มีการเลือก checkbox
$inp[$key] = $_POST['INP'][$key];
}
// แสดงผลค่าที่รับได้
print_r($inp);
แนวคิดการรับค่าก็คือ ปกติแล้ว รายการ checkbox ที่ส่งมา จะส่งมาเฉพาะรายการที่ถูกเลือกเท่านั้น ดันนั้น เราก็ทำการอ่าน key ของตัวที่ถูกเลือก แล้วนำ key ไปเลือก input ที่ต้องการอีกที โดยการใช้ความสามารถของ Array ธรรมดาครับ