ปัญหาการแสดงผล Ajax ให้รีเฟส ทั้ง เพจ ช่วยแนะนำด้วยครับ
ผมจได้ทำการ ล้างตัวแปร ค่าคุ๊กกี้ในเพจและ จะให้มันรีเฟส ทั้งหน้า เพื่อ ที่จะ ค่าตัวแปรคุ๊กกี้ หายไป
เท่าที่ผมลอง ดู
เท่าที่ผมลอง ดู
echo "<script language='javascript' type='text/javascript' >
window.location='chat_buddy.php';</script>";
โค๊ดนี้ เหมือนจะไม่ รีเฟส เลย ทั้ง FF IE และ โครม
echo "<meta http-equiv=\"refresh\" content=\"0;URL=login.php\">";
ส่วน โค๊ด นี้ รีเฟส แต่ โครม ส่วน FF และ IE ไม่มีผลเลย
พอจะมีวิธีแนะนำ ไหมครับ เพราะถ้าค่าตัวแปรไม่หายจะ เกิด บัค ทำให้ user สามารถส่งข้อความหาเพื่อน ที่ลบไปแล้วได้อ้ะครับ
หรือ window.location = 'xxx.php?' + date.getTime();
ลองแล้วครับ ไม่เปลี่ยนหน้าเหมือนกัน
echo "<script language='javascript' type='text/javascript' >
window.location = 'chat_buddy.php?' + date.getTime();</script>";
ไม่มีอะไรเกิดขึ้น
echo "<script language='javascript' type='text/javascript' >
window.location.reload();</script>";
ไม่มีอะไรเกิดขึ้น เช่นกัน
ถ้าได้อ่านบทความผม จะต้องได้อ่านว่า "Javascript ไม่สามารถใช้งานในหน้าที่ Ajax โหลดได้" ลองหาอ่านดูนะครับ
ความหมายของมันก็คือ ไม่สามารถเขียนใส่ใน PHP ได้ (echo ต้องไม่มี)
ที่ที่จะใส่ได้มีที่เดียวคือ ที่ Javascript ครับ เช่น เมื่อรับค่ากลับมาแล้ว ให้ refresh ทันที
Ajax.PeriodicalUpdater แล้ว จะส่ง ค่า php กลับ มา เช่น ในไฟลื php ที่ส่งค่าไปนั้น กำหนดตัวแปร ส่งกลับมา
ว่า $count = 0 แล้ว ในสคริป java Ajax.PeriodicalUpdater รับรับค่า $count = 0 ยังไงอ่ะครับ
แบบว่า รับ ค่า count = 0 แล้ว ก็เขียน IF ที่ได้ใต้คำสั่ง Ajax.PeriodicalUpdater ให้ มันรีดเฟสทั้งหน้าเลย อ่ะครับ
จริงๆแล้วคำสั่งพื้นฐานน่าจะมีเช่น responseText ก็อาจตรวจสอบจากค่านี้ได้ หรือ อาจดูจากสิ่งที่ script มีให้เช่น การรับค่ากลับเป็น XML หรือ JSON ก็ได้
ยกตัวอย่างเช่น ใน คำสั่งพื้นฐานของ Ajax นะครับ...
ที่ PHP หากทำงานสำเร็จ อาจหมายถึง login สำเร็จก็ให้คืนค่า 1 กลับมา ถ้าไม่สำเร็จก็คืนค่า 0
หลังจากรับค่าด้วย Ajax ที่ responseText ก็ตรวจสอบว่า ค่าที่ส่งกลับมา เท่ากับ 1 หรือไม่ ถ้าใช่ ก็ reload ซึ่งขั้นตอนส่วนนี้ กระทำบน Javascript เท่านั้น
อ่านบทความประกอบนะครับ