A-AA+then

ขอถามหน่อยครับ

1,873
คือผมเขียน php กับ ajax นะครับ
ผมทำหน้า admin ที่ไว้ลบข่าวของเว็บผม

ปุ่มลบของผม ทำแบบ ajax คือ พอกดปุ่มลบ ก็จะส่ง resquest ไปหา server เพื่อ ทำการบอกให้ serverลบ row ของข่าวนั้น

ปัญหาก็คือ สมมุติว่าผมมีข่าวอยู่ 5 ข่าว

ข่าว 1
ข่าว 2
ข่าว 3
ข่าว 4
ข่าว 5

ผมกดลบ ข่าว 2 ไป tabale ในหน้า page ผมก็จะ update แบบ ajax คือไม่มีการ refresh เท่ากับว่าผมเหลือข่าวอยู่ อีก 4อัน
ผมก็ลบ ข่าว 5 ต่อจากที่ลบข่าว 2 ทันที โดยไม่ได้ทีการ refresh page ผลคือ ข่าว 5 ถูกลบจริง แต่ page มันไม่ update
คือมันแสดง
ข่าว 1
ข่าว 3
ข่าว 4
ข่าว 5

แต่ถ้าผมกด F5 refresh page ข่าว 5 มันก็จะหายไป

ทำไงให้ เวลาผมกด ข่าว 2 กับ 5 โดยที่ไม่เปลี่ยน page เลยนะครับ

หวังว่าคงจะเข้าใจคำถามนะครับ

4 ความคิดเห็น

มี 2 วิธี หลักๆ ครับ เมื่อลบไปแล้วให้ทำดังต่อไปนี้

1. ซ่อน element ที่ลบซะ ถ้า้เป็นตารางก็ซ่ิอนมันทั้งแถวเลยก็ได้ เช่น

document.getElementById('deleteid').style.display = 'none';

2. ลบ element นั้นออกจริงๆ วิธีนี้ดีกว่า แต่ก็ยากกว่าและต้องเขียนคำสั่งหลายบรรทัด แต่ถ้าใช้ FrameWork เช่น GAJAX ก็จะง่ายขึ้นเช่น

$G('deleteid').remove(); /* สำหรับ GAJAX */
1

ซ่อมมันแล้ว ให้ัมัน query ข้อมูลใหม่กลับมาที่ page เดิมปะครับ แต่ผมซ่อน

แบบนี้แล้ว
document.getElementById('deleteid').style.display = 'none';

เพราะ page 1 แสดงผล page2 ทำ query แล้วส่งไปให้ page1

page2 ส่ง ข้อมูลแบบ text กลับมา page 1 เพื่อบอกว่าทำงานสำเร็วแล้ว แต่พอผมเพิ่ม header("content-type:text/javascript") ไป พร้อมส่งคำสั่ง javascript ไปด้วย
อันนี้ document.getElementById('deleteid').style.display = 'none'; มันกลับไม่ทำงาน

มันไม่หาย -*- ไม่รู้เขียนตรงไหนผิด ToT


ไม่ทราบว่าจะติดต่อกับพี่ทาง msn ได้ปะครับ
2

ครึๆ ไม่ใช่

ซ่อนด้วย Javascript ครับ หลังจากรับค่ากลับมาแล้ว ด้วย AJAX หมายถีงทำที่ AJAX

deleteid เป็น id ของ element ที่ต้องการลบครับ  เช่น

<div id="deleteid">XXX</div>
<input type="button" onclick="document.getElementById('deleteid').style.display= 'none'" value="Delete" />
3

ผมทำได้ละครับ อิอิ
4
^