如何通过AJAX调用呈现系统消息


10

当我取回ajax请求时,我想显示一条系统消息。

ajax请求返回正确的消息。我可以用警报对其进行测试。

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

现在它将以典型的Joomla系统消息的形式显示成功或错误消息。但是Joomla.renderMessages通话,没有显示任何结果。系统消息不会出现在我的网站上。

有什么问题还是我需要做更多的事情才能使它运行?

Answers:


6

@Bakual提到的所有事情都是正确的,但我注意到您只是将传递给result.messagealert并且鉴于[alert(message)][1]期望message是a string或an object可以将其转换为a,string因此可能是问题所在。

如果result.message只是一个字符串,则需要将其包装在适当的容器中,如下所示:

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

这就是解决方案!谢谢!
佩里诺

2

JavaScript函数取决于具有id的容器的存在system-message-container。有些模板根本没有此容器,或者仅在有消息显示时才使用。因此,首先与Protostar核对一下,看看它是否可以正常工作

另外,您还需要确保已实际加载core.js了扩展程序。不需要加载,尤其是在前端。由于Joomla 3.3可以使用加载,因此JHtmlBehavior::core()在较早的版本中将使用JHtmlBehavior::framework()

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.