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


10

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

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

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

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

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

回答:


6

@Bakualで言及されているすべてのことは正しいですが、私はあなたがresult.messageto alertを渡しているだけであり、a またはitに[alert(message)][1]期待できることを考えると、これが問題になる可能性があることに気づきました。messagestringobjectstring

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

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

それが解決策です!THX!
Perino 2014年

2

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.