Ajaxリクエストを受け取ったときにシステムメッセージを表示したいのですが。
Ajaxリクエストは正しいメッセージを返します。アラートでテストできます。
alert(result.message);
Joomla.renderMessages(result.message);
これで、成功またはエラーメッセージが一般的なJoomlaシステムメッセージとして表示されます。しかし Joomla.renderMessages
呼び出し、結果は表示されません。システムメッセージがサイトに表示されません。
何か問題がありますか、これを実行するためにさらに何かをする必要がありますか?
@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 });
_
JavaScript関数は、IDが_system-message-container
_のコンテナーの存在に依存します。一部のテンプレートにはこのコンテナがまったくないか、表示するメッセージがある場合のみです。まず、Protostarで確認して、そこで機能するかどうかを確認してください
また、拡張機能で_core.js
_を実際にロードしたことを確認する必要があります。特にフロントエンドではなく、ロードする必要はありません。 Joomla 3.3以降では、JHtmlBehavior::core()
を使用してロードできるため、以前のバージョンではJHtmlBehavior::framework()
を使用していました。