ti-enxame.com

Como processar a mensagem do sistema de AJAX

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

A solicitação ajax retorna a mensagem certa. 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 o Joomla.renderMessages chamada, não mostra nenhum resultado. A mensagem do sistema não aparecerá no meu site.

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

10
Perino

Todas as coisas mencionadas pelo @Bakual estão corretas, mas noto que você está passando o result.message Para alert e considerando que [alert(message)][1] espera que message seja um string ou um object pode ser convertido em um string, este pode ser o problema.

Se result.message For 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 });
5
Craig

A função JavaScript depende da presença de um contêiner com o ID system-message-container. Alguns modelos não possuem 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 carregou core.js Com sua 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().

2
Bakual