web-dev-qa-db-ja.com

AJAX呼び出しからシステムメッセージをレンダリングする方法

Ajaxリクエストを受け取ったときにシステムメッセージを表示したいのですが。

Ajaxリクエストは正しいメッセージを返します。アラートでテストできます。

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

これで、成功またはエラーメッセージが一般的なJoomlaシステムメッセージとして表示されます。しかし Joomla.renderMessages呼び出し、結果は表示されません。システムメッセージがサイトに表示されません。

何か問題がありますか、これを実行するためにさらに何かをする必要がありますか?

10
Perino

@Bakualで言及されていることはすべて正しいですが、_result.message_をalertに渡しているだけで、[alert(message)][1]messagestringまたはobjectstringに変換できますが、これが問題である可能性があります。

_result.message_が単なる文字列の場合は、次のような適切なコンテナにラップする必要があります。

_var jmsgs = [result.message];  // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });
_
6
Craig

JavaScript関数は、IDが_system-message-container_のコンテナーの存在に依存します。一部のテンプレートにはこのコンテナがまったくないか、表示するメッセージがある場合のみです。まず、Protostarで確認して、そこで機能するかどうかを確認してください

また、拡張機能で_core.js_を実際にロードしたことを確認する必要があります。特にフロントエンドではなく、ロードする必要はありません。 Joomla 3.3以降では、JHtmlBehavior::core()を使用してロードできるため、以前のバージョンではJHtmlBehavior::framework()を使用していました。

2
Bakual