แสดงว่ายังไม่เข้าใจชุดคำสั่งนี้ ไม่ต้องเขียนคำสั่งทั้ง 10 ครั้งครับ เพราะคำสั่งข้างบนนั้นเรียกใช้ $(".messageActivated") นั่นคือ ค่าตัวใดที่มีคลาสนี้ก็จะทำงาน และจะทำงานเมื่อไร ก็เมื่อทำการคลิกตามที่ได้กำหนดใน .bind('click', function(){...});
ที่ต้องทำคือเจ้า checkbox ที่จะใช้นี้ทั้ง 10 อันจะต้องระบุคลาส messageActivated ลงไปใน checkbox นั้น ตัวอย่าง
<input name="" type="checkbox" value="1" class="messageActivated">
<input name="" type="checkbox" value="2" class="messageActivated">
<input name="" type="checkbox" value="3" class="messageActivated">
ส่วนปัญหาเรื่องอยากจะส่งไอดีไปด้วยต้องทำยังไง ก่อนอื่นต้องทำความเข้าใจในส่วนการส่งค่า $.get("testdata.php", { checked: '1_A', msgId: $(this).attr('value') } );
testdata.php คือปลายทางไฟล์ที่จะส่งไป
{ checked: '1_A', msgId: $(this).attr('value') } คือข้อมูลที่จะส่งไป ซึ่งแยกเป็น ตัวแปร checked มีค่าเท่ากับ 1_A และตัวแปร msgId มีค่าเท่ากับค่าใน value ของ checkbox ที่ทำการคลิก
จากคำสั่งด้านบน checked เป็นค่า status ที่จะใช้อัพเดตแล้ว msgId ก็ควรเป็นค่า id ของข้อมูลนั้น ซึ่งจะได้ไม่ต้องส่งไปเป็น 1_A ต้องเอาไปแยกตัวแปรอีกวุ่นวาย เพราะตามความต้องการที่บอกมายังไม่เห็นว่าค่า value ใน checkbox จะใช้ทำอะไร ให้มันเป็น id ไปเลยดีกว่า
ปัญหาสุดท้าย $msgId=$_GET['msgId']; ทำไมติ๊กออกก็ยังส่งค่าเดิมไปอัพเดต
if($(this).attr('checked'))
{
$.get("testdata.php", { checked: '1_A', msgId: $(this).attr('value') } );
}
else
{
$.get("testdata.php", { checked: '1_D', msgId: $(this).attr('value') } );
}
เพราะคำสั่ง else ไงครับ ถึง checkbox ไม่ถูกเช็ค มันก็ยังให้ส่งค่าไปอัพเดต ไม่ว่า checkbox ตัวนี้จะถูกติ๊กหรือไม่ถูกติ๊ก ค่าใน checkbox ก็จะถูกส่งไปอยู่ดี เพียงแต่เปลี่ยนจากสถานะ 1_A เป็น 1_D เท่านั้นเอง
สรุปตามความต้องการที่ผมเข้าใจถ้าจะแก้ไขก็ต้องปรับเป็น
if($(this).attr('checked'))
{
var status_update = 'A';
}
else
{
var status_update = 'D';
}
$.get("testdata.php", { checked: status_update, msgId: $(this).attr('value') } );
ค่า checked จะเท่ากับ A หรือ D ตามสถานะการติ๊กของ checkbox
ค่า msgId จะเท่ากับ value ของ checkbox นั่นก็คือ ID ของข้อมูลตามที่แนะนำในเรื่องของการส่งค่าไอดี
จากนั้นก็รับค่า checked และ msgId ไปอัพเดต ซึ่งก็มีทั้ง สถานะและไอดี น่าจะพอกับความต้องการที่ระบุมาล่ะ หากผิดพลาดตรงไหนก็ขออภัยด้วยครับ พิมพ์สดไม่ได้เทส