GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ต้องการเก็บค่าของ Checkbox ทั้งที่ถูกติ๊กและไม่ถูกติ๊กค่ะ

รบกวนหน่อยค่ะ หาวิธีมาหลายวันแล้วทำไม่ได้ซักที คือต้องการเก็บค่า chkbox ทั้งที่ถูกเลือกและไม่ถูกเลือก เก็บในฐานข้อมูลค่ะ

คืออยากให้ค่าที่ถูกเลือกเก็บ chk=1 ส่วนที่ไม่ถูกเลือกก็บ chk = 0 เพื่อเก็บไว้อ้างอิงเวลาเรียกแก้ไข    ซึ่งข้อมูลchkbox นั้นดึงข้อมูลมาจากตารางในฐานข้อมูลมาแสดงค่ะ เป็นแบบ array  

<input type="checkbox" name="chkDel[]" id="chkDel<?=$i;?>" value="<?=$objResult["id_branch"]; ?>"  />



ในส่วนของ chkbox ที่ถูกเลือกนั้นสามารถเก็บข้อมูลลงฐานข้อมูลได้ตามปกติค่ะ แต่ว่า chkbox mี่ไม่ถูกเลือกไม่สามารถส่งค่าไปได้

ต้องทำอย่างไรค่ะถึงจะสามารถส่งค่าของchkbox ที่ไม่ถูกเลือกนั้นไปเก็บด้วยโดยให้มี chk = 0 

ช่วยทีีนะคะ
28 ก.ย. 2555 1 12,831

วิธีง่ายๆคือกำหนดให้ฟิลด์ที่ต้องการเก็บค่ามี default เป็น 0 ครับ ดังนั้นรายการใดที่ไม่ได้มีการเลือกมาก็จะมีค่าเป็น 0 โดยปริยายครับ



วิธีอื่นๆถ้าวิธีข้างต้นไม่สามารถใช้งานได้ เช่นการแก้ไข



1.ถ้ารู้จำนวน checkbox ที่แน่นอนเลย ก้ไม่ยากครับ เช่นหากมี checkbox จำนวน 10 ตัวที่รูเชื่อแน่นอน ก็ให้รับค่าด้วย php ตรงๆไปเลย



$check1 = intval($_POST['check1']);

.......

$checkn = intval($_POST['checkn']);



ซึ่งถ้ามีตัวใดถูกเลือก ก็ขะได้ค่า 1 แต่ถ้าไม่ถูหเลือก ก็จะเป็น 0 ครับ



2.ถ้าจำนวน checkbox ไม่แน่นอน หรือถ้า ค่าที่ต้องการไม่ใช่ 1 และ 0 ก้อาจค้องใช้วิธีสร้าง input ชนิด hidden จำนวนเท่ากับ checkbox ใช้สำหรับส่งค่าแทนก็ได้ ซึ่งการรับค่าก็ใช้วิธีรับค่าจาก hidden แทน checkbox โดยสามารถมีวิธีย่อยๆ ได้อีก 2 วิธี คือ





2.1 รัยค่าที่สเงมาจาก hidden โดยตรง วิธีนี้ อาจต้องมีการเขียน javascript เพิ่ม เพื่ออัปเดท ค่าใน hidden ในกรณีที่ เลือก หรือไม่เลือก



2.2 รับค่าทีส่งมาโดยตรวจสอบกับ checkbpox และ hidden เข่น



$check1 = isset($_POST['checkbox']) ? $_POST['checkbox'] ? $_POST['hidden'];



โค้ดด้านบน จะใช้ค่าจาก checkbox ถ้าถูกเลือก และจะใช้ค่าจาก hidden เมื่อ ไม่เลือก



อาจต้องทำความเข้าใจและเลือกวิธีที่เหมาะสมนิดหน่อยนะครับ 
#1
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^