A-AA+then

ถามเรื่องการ รีเฟสรูปที่สร้างขึ้นมาขากไฟล์phpหน่อยครับ

1,142
คือว่าผมทำรูปกราฟแสดงโพลอยู่อะครับโดยการดึงข้อมูลมาจากฐานข้อมูล ทีนี้ปัญหาขอผมคือพอกดแอดข้อมู,ใหม่ลงไปแล้วแต่รูปกราฟที่เเสดงมันยังเป็นรูปเดิมอยู่อะครับ คือผมต้องการให้มันรีเฟสเลยตอนที่กดโหวด อะครับ ผมจะทำยังไงได้บ้างครับ

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

สามารถทำได้โดยการกำหนด src ใหม่ให้กับรูปภาพ (เคยตอบคำถามนี้แล้ว)

ข้อสำคัญก็คือ รูปที่กำหนดจะต้องมีชื่อไม่ซ้ำเดิม ไม่งั้นหากส่วชื่อรูปเดิมไป บราวเซอร์จะไปเอาจาก cache ซึ่งจะทำให้รูปไม่เปลี่ยน

หนทางอย่างง่าย ที่จะทำให้รูปเปลี่ยนชื่อทุกครั้งที่มีการโหลดใหม่ คือ ให้ใส่ ตัวเลขสุ่มต่อจากชื่อรูป เช่น

image.gif?123456789

เป็นต้น ซึ่งตัวเลขต่อท้าย อาจมาจากเวลา (mktime) หรือ ตัวเลขแบบสุ่มก็ได้ครับ
1

ยังไงหรือครับ ไม่ค่อยเข้าใจครับ มีตัวอย่างได้ไหมครับ
2

ไม่รู้ว่า ทำวิธีไหนไว้ แต่สามารถลองหาคำตอบบนเว็บได้ครับ เนื่องจากเคยมีคนถาม คำถามนี้แล้ว และ ผมตอบไปแล้ว

กรุณาลองหาดูก่อน ถ้าไม่ได้ ลองอธิบายเพิ่มเติมว่าเข้าใจว่าอย่างไร และทำยังไงไว้
3

ผมลองค้นหาแล้วครับ แต่ไม่เจอ  ที่ผมคำก็คือ ตอนแรกพอเปิดเว็บมาก็ ใช้onload เรียกฟังชั่น โชว์รูปกราฟขึ้นมาแสดงก่อนอะครับ จากนั้นเมื่อมีคนกดโหวดผมก็ใช้ajax ส่งค่าไปที่หน้าเอาค่าไปเก็บลงฐานข้อมูล จากนั้นก็ ตรวจสอบว่าเก็บค่าเสร็จแล้วหรือป่าวโดยการecho "Y"เมื่อเก็บค่าเสร็จแล้วถ้าเก็บค่าไม่ได้ ก็echo "N" แล้วเช็คจาก responseText อะครับ แบบนี้อะครับ
 if(req.responseText=="Y"){
alert("บันทึกผลโหวดเรียบร้อยแล้ว");
 showgraph();
}

อันนี้ฟังชั่นโชว์กราฟครับ

function showgraph(){
var ran= Math.random();
document.getElementById("test").innerHTML="<img src='makegraph.php?ran'>";
}
แต่ปัญหาก็คือมันยังแสดงรูปกราฟที่เป็นรูปเก่าอยู่อะครับ
4

<img id="test" alt="" />

function showgraph(){
  var ran= Math.random();
  document.getElementById("test").src = 'makegraph.php?' + ran;
}
5

ขอบพระคุณมากเลยครับ
6
^