Como processar a mensagem do sistema da chamada AJAX

10

Gostaria de exibir uma mensagem do sistema ao receber minha solicitação de ajax.

A solicitação ajax retorna a mensagem correta. Eu posso testá-lo com um alerta.

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

Agora, será exibida a mensagem de sucesso ou erro como uma mensagem típica do sistema Joomla. Mas a Joomla.renderMessagesligação não mostra nenhum resultado. A mensagem do sistema não aparecerá no meu site.

Há algo errado ou eu tenho que fazer algo mais para que isso funcione?

Perino
fonte

Respostas:

6

Todas as coisas mencionadas pelo @Bakual estão corretas, mas percebo que você está passando o result.messagepara alerte dado que [alert(message)][1]espera messageser um stringou um objectque possa ser convertido em um, stringisso pode ser o problema.

Se result.messagefor apenas uma string, será necessário envolvê-la em um contêiner apropriado, algo como isto:

var jmsgs = [result.message];  // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });
Craig
fonte
essa é a solução! Valeu!
Perino 29/05
2

A função JavaScript depende da presença de um contêiner com o ID system-message-container. Alguns modelos não têm esse contêiner, ou apenas se houver uma mensagem para mostrar. Então, primeiro verifique com Protostar e veja se funciona lá

Além disso, você precisa ter certeza de que realmente carregou core.jssua extensão. Não é necessário carregar, especialmente não no frontend. Desde o Joomla 3.3, você pode carregá-lo usando JHtmlBehavior::core(), na versão anterior, você usaria JHtmlBehavior::framework().

Bakual
fonte