วิธีการแสดงผลข้อความระบบจากการโทร AJAX


10

ฉันต้องการที่จะแสดงข้อความของระบบเมื่อฉันได้รับ ajax กลับมา

คำขอ ajax ส่งคืนข้อความที่ถูกต้อง ฉันสามารถทดสอบด้วยการแจ้งเตือน

alert(result.message);
Joomla.renderMessages(result.message);

ตอนนี้มันจะแสดงความสำเร็จหรือข้อความแสดงข้อผิดพลาดเป็นข้อความระบบ Joomla ทั่วไป แต่การJoomla.renderMessagesโทรไม่แสดงผลลัพธ์ใด ๆ ข้อความระบบจะไม่ปรากฏบนเว็บไซต์ของฉัน

มีอะไรผิดปกติหรือฉันต้องทำอะไรมากกว่านี้เพื่อให้ทำงานได้หรือไม่?

คำตอบ:


6

ทุกสิ่งที่กล่าวถึงโดย @Bakual ถูกต้อง แต่ฉันสังเกตเห็นว่าคุณเพิ่งผ่านresult.messageไปalertและ[alert(message)][1]คาดว่าmessageจะเป็นstringหรือobjectมันสามารถเปลี่ยนเป็นสิ่งstringนี้อาจเป็นปัญหา

หากresult.messageเป็นเพียงสตริงคุณจะต้องห่อมันในภาชนะที่เหมาะสมดังนี้:

var jmsgs = [result.message];  // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });

นั่นคือทางออก! ขอบคุณ!
Perino

2

system-message-containerฟังก์ชั่นจาวาสคริปต์ขึ้นอยู่กับการปรากฏตัวของภาชนะที่มีประชาชนได้ เทมเพลตบางตัวไม่มีคอนเทนเนอร์นี้เลยหรือเฉพาะเมื่อมีข้อความให้แสดง ดังนั้นก่อนตรวจสอบกับ Protostar และดูว่าใช้งานได้หรือไม่

นอกจากนี้คุณต้องแน่ใจว่าคุณโหลดจริงcore.jsด้วยส่วนขยายของคุณ ไม่จำเป็นต้องโหลดโดยเฉพาะอย่างยิ่งไม่ใช่ในส่วนหน้า ตั้งแต่ Joomla 3.3 คุณสามารถโหลดได้โดยใช้ในรุ่นก่อนหน้านี้คุณจะใช้JHtmlBehavior::core()JHtmlBehavior::framework()

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.