ทำไม alert responseText ไม่ออก
var dl = xhr.responseText.toJSON();
if (!dl) {
alert(xhr.responseText);
}




ช่วยแนะนำหน่อยครับว่าต้องทำยังไง หรือผมอาจจะไม่ได้กำหนด error ไว้
กรกฎ วิริยะ 16 Dec 2011 10:41
555+++



ก็อาจแสดงว่าไม่มีอะไรส่งกลับมามั้งครับ





ลงทดสอบบน firefox ดู โดยดูค่าตอบกลับจาก Firebugs ครับ
Popup Art 17 Dec 2011 03:17
มันไม่ยอมส่ง error กลับมา ขอถามแบบคนไม่รู้เลยน่ะครับ อยากรู้ว่าต้องกำหนดตัวแปร $error ยังไง




if (gcms::isAdmin() || gcms::isMember()){
   $ret[] = rawurlencode('ถูกต้อง');
   echo '[{"contented":"'.implode('', $ret).'"}]';
}else{
   $error = 'ค่า error ที่ส่งกลับ';
}




ที่มามาจาก json ในเว็บหลักนำมาประยุคนิดหน่อย
กรกฎ วิริยะ 17 Dec 2011 12:57
เออ...เอากันจริงๆ จากที่เห็นเธอไม่ได้ส่ง error กลับนี่



ที่ถูกน่าจะเป๋น echo 'ค่า error ที่ส่งกลับ';



จ
ริงๆแล้ว GCMS ไม่ได้มีวิธีส่งกลับที่เป็นมาตรฐาน เราอาจส่งกลับ ด้วย text หรือ JSON หรือ XML ก้ได้แล้วแต่สะดวก



แต่สิ่งที่ผู้ออกแบบต้องทำก็คือ ต้องรู้ว่าส่งอะไรกลับมา และ สิ่งที่ส่งมาถูกต้องตามที่ต้องการหรือเปล่า (สามารถรู้ได้ดวยการ debug ด้วย Firebug หรือเครื่องมืออื่นใดก้ได้ ซึ่งสามารถหาดูได้จากบราวเซอร์แทบทุกค่ายในปัจจุบัน)

จากนั้นค่อยนำผลลัพท์ที่ได้ไปจัดการต่อ ด้วยคำสั่งที่ต้องการ เช่น



ถ้าส่งกลับเป็น JSON ก็ใช้ ds = xhr.responseText.toJSON(); ก็จะได้ ds เป็น JSON ตามต้องการ



หรือ ถ้าส่งกลับเป็น Text ก็ใช้ alert(xhr.responseText); ก็ได้



ซึ่งสิ่งต่างๆเหล่านี้เธอเองน่าจะพอรู้อยู่แล้ว (เพราะเห็นทำมาหลายทีแล้ว) ดังนั้น ถ้าผลลัพท์ไม่เป็นไปตามที่ต้องการ ความผิดพลาดน่าจะอยู่ที่ PHP ที่เธอส่งกลับนั่นแหละ....











Popup Art 20 Dec 2011 01:41
555+ ขอบคุณมากครับ ผมก็นึกว่ามีมาตรฐานในการแสดงค่า error ครับ :28: