it-swarm-id.com

Cara merender Pesan Sistem dari AJAX panggilan

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. Tetapi Joomla.renderMessages panggilan, 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?

10
Perino

Semua hal yang disebutkan oleh @Bakual benar tetapi saya perhatikan bahwa Anda hanya meneruskan result.message Ke alert dan mengingat bahwa [alert(message)][1] mengharapkan message menjadi a string atau object dapat dikonversi menjadi string ini bisa menjadi masalah.

Jika result.message Hanyalah sebuah 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 });
5
Craig

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-tama periksa dengan Protostar dan lihat apakah itu berfungsi di sana

Anda juga perlu memastikan Anda benar-benar memuat core.js Dengan 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().

2
Bakual