เชื่อว่าหลายๆ คน คงเคยเจอปัญหาเหมือน จขกท. เมื่อเราต้องทำ Form สำหรับให้เลือกหลายๆ Input เช่น มี Checkbox ให้เลือกชื่อคนทั้งวิทยาลัย
ข้อมูลคนมีเยอะเลยใช่มั้ยครับ? แต่ถ้าแสดงเป็นหน้าเดียวทั้งหมด ก็คงไม่สวยงามนัก
โปรแกรมเมอร์เรามีวิธีแก้ปัญหาอย่างไรกัน?
โปรแกรมเมอร์อินดี้ บอกว่า “ก็ให้ User คลิกบันทึกทีละหน้าเลย”
ผมถามไปว่า “ถ้าเลือกชื่อคนหน้าที่ 1 แล้วเผลอไปหน้า 2 หรือ 3 เลย จะรู้มั้ยว่ายังไม่บันทึกหน้าแรก ?”
โปรแกรมเมอร์อินดี้ ตอบว่า “ช่วยไม่ได้!!”
** ไปต่อไม่ถูกเลยใช่มั้ยครับ **
เอาเป็นว่า เรามีวิธีที่ดีกว่า
เพราะไหนๆ เราก็อยากจะใช้ Table แบบแบ่งหน้าแล้ว ก็ต้องทำให้มัน POST ค่าไปได้ทุกๆ หน้าพร้อมกันเลย
จากรูป เราจะส่งข้อมูลผ่าน Ajax
โดยบรรทัดที่ 4 เมื่อกดปุ่ม Submit จากฟอร์ม (id ชื่อว่า form_save) คำสั่งส่วนนี้จะทำงานทันที
ในบรรทัดที่ 5 คือ การอ่านข้อมูล Input ทั้งหมดจาก Table (หัวใจหลักคือตรงนี้ครับ)
บรรทัดที่ 7 – 15 คือ การส่งค่าแบบ POST ผ่าน Ajax ในรูปแบบทั่วๆ ไปครับ
แค่นี้เราก็สามารถ POST ข้อมูลจาก View ไป Controller ได้ทั้งหมดเลยครับ ><
Author : นายศักดา บุญภา (มิวสิค)