เว็บสำเร็จรูป เว็บสำเร็จรูปภาครัฐ เว็บโรงเรียน เว็บไซต์ส่วนตัว ระบบบริหารจัดการเว็บไซต์ (CMS) ฟรี

ทำไม alert responseText ไม่ออก

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

if (!dl) {


alert(xhr.responseText);

}




ช่วยแนะนำหน่อยครับว่าต้องทำยังไง หรือผมอาจจะไม่ได้กำหนด error ไว้
16 ธ.ค. 2554 4 1,952

555+++



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





ลงทดสอบบน firefox ดู โดยดูค่าตอบกลับจาก Firebugs ครับ
#1

ทำไม alert responseText ไม่ออก
มันไม่ยอมส่ง error กลับมา ขอถามแบบคนไม่รู้เลยน่ะครับ อยากรู้ว่าต้องกำหนดตัวแปร $error ยังไง





if (gcms::isAdmin() || gcms::isMember()){

   $ret[] = rawurlencode('ถูกต้อง');

   echo '[{"contented":"'.implode('', $ret).'"}]';

}else{

   $error = 'ค่า error ที่ส่งกลับ';

}





ที่มามาจาก json ในเว็บหลักนำมาประยุคนิดหน่อย
#2

เออ...เอากันจริงๆ จากที่เห็นเธอไม่ได้ส่ง error กลับนี่



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



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



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

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



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



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



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











#3

555+ ขอบคุณมากครับ ผมก็นึกว่ามีมาตรฐานในการแสดงค่า error ครับ :28:
#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg, png, webp ขนาดไฟล์ไม่เกิน 2M
^