Come eseguire il rendering del messaggio di sistema dalla chiamata AJAX


10

Vorrei visualizzare un messaggio di sistema quando ho ricevuto la mia richiesta Ajax.

La richiesta Ajax restituisce il messaggio giusto. Posso provarlo con un avviso.

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

Ora mostrerà il messaggio di successo o di errore come un tipico messaggio di sistema Joomla. Ma la Joomla.renderMessageschiamata non mostra alcun risultato. Il messaggio di sistema non verrà visualizzato sul mio sito.

C'è qualcosa di sbagliato o devo fare qualcosa di più per farlo funzionare?

Risposte:


6

Tutte le cose di cui da @Bakual sono corretti, ma mi accorgo che siete solo di passaggio il result.messageper alerte dato che [alert(message)][1]si aspetta messagedi essere un stringo un objectpuò convertire in un stringquesto potrebbe essere il problema.

Se result.messageè solo una stringa, dovrai avvolgerla in un contenitore appropriato, qualcosa del genere:

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

questa è la soluzione! Grazie!
Perino,

2

La funzione JavaScript dipende dalla presenza di un contenitore con l'id system-message-container. Alcuni modelli non hanno affatto questo contenitore o solo se è presente un messaggio da mostrare. Quindi prima controlla con Protostar e vedi se funziona lì

Inoltre, devi assicurarti di aver effettivamente caricato core.jsl'estensione. Non è necessario caricato, soprattutto non in frontend. Da Joomla 3.3 puoi caricarlo usando JHtmlBehavior::core(), nella versione precedente lo useresti JHtmlBehavior::framework().

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.