Як надати системне повідомлення під час виклику 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 });

ось рішення! Дякую!
Перино

2

Функція JavaScript залежить від наявності контейнера з ідентифікатором system-message-container. Деякі шаблони взагалі не мають цього контейнера або лише якщо є повідомлення для показу. Тому спочатку зверніться до Protostar і перевірте, чи працює він там

Також вам потрібно переконатися, що ви фактично завантажили core.jsсвоє розширення. Не потрібно завантажувати, особливо не в передній частині. Оскільки Joomla 3.3 ви можете завантажувати його за допомогою JHtmlBehavior::core(), у попередній версії ви б використовували JHtmlBehavior::framework().

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.