Cara merender Pesan Sistem dari panggilan AJAX

10

Saya ingin menampilkan pesan sistem ketika saya mendapatkan kembali permintaan ajax saya.

Permintaan ajax mengembalikan pesan yang tepat. Saya bisa mengujinya dengan peringatan.

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

Sekarang akan muncul pesan keberhasilan atau kesalahan sebagai Pesan Sistem Joomla yang khas. Tapi Joomla.renderMessagespanggilannya, tidak menunjukkan hasil apa pun. Pesan sistem tidak akan muncul di situs saya.

Apakah ada yang salah atau saya harus melakukan sesuatu yang lebih untuk menjalankan ini?

Perino
sumber

Jawaban:

6

Semua hal yang disebutkan oleh @Bakual sudah benar tapi saya melihat bahwa Anda hanya melewati result.messageke alertdan mengingat bahwa [alert(message)][1]mengharapkan messageuntuk menjadi stringatau objectdapat dikonversi ke stringini bisa menjadi masalah.

Jika result.messagehanya string, maka Anda harus membungkusnya dalam wadah yang sesuai, seperti ini:

var jmsgs = [result.message];  // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });
Craig
sumber
itu solusinya! Terima kasih!
Perino
2

Fungsi JavaScript tergantung pada keberadaan wadah dengan id system-message-container. Beberapa templat tidak memiliki wadah ini sama sekali, atau hanya jika ada pesan untuk ditampilkan. Jadi pertama periksa dengan Protostar dan lihat apakah itu berfungsi di sana

Anda juga perlu memastikan Anda benar-benar dimuat core.jsdengan ekstensi Anda. Tidak perlu dimuat, terutama di frontend. Karena Joomla 3.3 Anda dapat memuatnya menggunakan JHtmlBehavior::core(), dalam versi sebelumnya Anda akan menggunakan JHtmlBehavior::framework().

Bakual
sumber