Как сделать системное сообщение из AJAX-вызова

10

Я хотел бы показать системное сообщение, когда я получил свой запрос AJAX.

Запрос ajax возвращает правильное сообщение. Я могу проверить это с предупреждением.

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

Теперь он будет отображать сообщение об успехе или ошибке как типичное системное сообщение Joomla. Но Joomla.renderMessagesзвонок, не показывает никаких результатов. Системное сообщение не появится на моем сайте.

Что-то не так, или я должен сделать что-то еще, чтобы заставить это работать?

Перин
источник

Ответы:

6

Все вещи, упомянутые @Bakual, ​​верны, но я замечаю, что вы просто передаете result.messageto alertи, учитывая, [alert(message)][1]что он может messageбыть stringили objectможет преобразоваться в a, stringэто может быть проблемой.

Если result.messageэто просто строка, то вам нужно будет обернуть ее в соответствующий контейнер, примерно так:

var jmsgs = [result.message];  // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });
Craig
источник
это решение! Спасибо!
Перино
2

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

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

Bakual
источник