A-AA+then

ปัญหาการแสดงผล Ajax ให้รีเฟส ทั้ง เพจ ช่วยแนะนำด้วยครับ

2,006
ผมจได้ทำการ ล้างตัวแปร ค่าคุ๊กกี้ในเพจและ จะให้มันรีเฟส ทั้งหน้า เพื่อ ที่จะ ค่าตัวแปรคุ๊กกี้ หายไป

เท่าที่ผมลอง ดู

    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  สามารถส่งข้อความหาเพื่อน ที่ลบไปแล้วได้อ้ะครับ

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

ใช้ window.location.reload(); ครับ

หรือ window.location = 'xxx.php?' + date.getTime();
1

    ลองแล้วครับ ไม่เปลี่ยนหน้าเหมือนกัน
    
    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>";

    ไม่มีอะไรเกิดขึ้น เช่นกัน
2

เข้าใจว่า น่าจะใช้ผิดที่...

ถ้าได้อ่านบทความผม จะต้องได้อ่านว่า "Javascript ไม่สามารถใช้งานในหน้าที่ Ajax โหลดได้" ลองหาอ่านดูนะครับ

ความหมายของมันก็คือ ไม่สามารถเขียนใส่ใน PHP ได้ (echo ต้องไม่มี)

ที่ที่จะใส่ได้มีที่เดียวคือ ที่ Javascript ครับ เช่น เมื่อรับค่ากลับมาแล้ว ให้ refresh ทันที
3

อ่าครับ อาจารย์เริ่มเข้าใจแล้ว ครับ ผม ใช้ 

Ajax.PeriodicalUpdater  แล้ว จะส่ง ค่า php กลับ มา เช่น ในไฟลื php ที่ส่งค่าไปนั้น กำหนดตัวแปร ส่งกลับมา 

ว่า $count = 0  แล้ว ในสคริป java  Ajax.PeriodicalUpdater  รับรับค่า $count = 0 ยังไงอ่ะครับ 

แบบว่า รับ ค่า count = 0 แล้ว ก็เขียน IF ที่ได้ใต้คำสั่ง 
Ajax.PeriodicalUpdater ให้ มันรีดเฟสทั้งหน้าเลย อ่ะครับ
4

อันนี้ก็ไม่แน่ใจนะ ถ้าเป็น Frame Work อื่นผมไม่ค่อยถนัด

จริงๆแล้วคำสั่งพื้นฐานน่าจะมีเช่น responseText ก็อาจตรวจสอบจากค่านี้ได้ หรือ อาจดูจากสิ่งที่ script มีให้เช่น การรับค่ากลับเป็น XML หรือ JSON ก็ได้

ยกตัวอย่างเช่น ใน คำสั่งพื้นฐานของ Ajax นะครับ...

ที่ PHP หากทำงานสำเร็จ อาจหมายถึง login สำเร็จก็ให้คืนค่า 1 กลับมา ถ้าไม่สำเร็จก็คืนค่า 0
หลังจากรับค่าด้วย Ajax ที่ responseText ก็ตรวจสอบว่า ค่าที่ส่งกลับมา เท่ากับ 1 หรือไม่ ถ้าใช่ ก็ reload ซึ่งขั้นตอนส่วนนี้ กระทำบน Javascript เท่านั้น

อ่านบทความประกอบนะครับ
5
^