Cómo representar el mensaje del sistema desde una llamada AJAX

10

Me gustaría mostrar un mensaje del sistema cuando recibí mi solicitud de ajax.

La solicitud ajax devuelve el mensaje correcto. Puedo probarlo con una alerta.

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

Ahora mostrará el mensaje de éxito o error como un mensaje típico del sistema Joomla. Pero la Joomla.renderMessagesllamada, no muestra ningún resultado. El mensaje del sistema no aparecerá en mi sitio.

¿Hay algo mal o tengo que hacer algo más para que esto funcione?

Perino
fuente

Respuestas:

6

Todas las cosas mencionadas por @Bakual son correctas, pero veo que estás de paso a la result.messagede alerty dado que [alert(message)][1]Espera messagea ser un stringo una objectque puede convertir a un stringEste podría ser el problema.

Si result.messagees solo una cadena, deberá envolverla en un contenedor apropiado, algo como esto:

var jmsgs = [result.message];  // You can stack multiple messages of the same type
Joomla.renderMessages({'info': jmsgs });
Craig
fuente
esa es la solucion! ¡Gracias!
Perino
2

La función de JavaScript depende de la presencia de un contenedor con la identificación system-message-container. Algunas plantillas no tienen este contenedor en absoluto, o solo si hay un mensaje para mostrar. Así que primero verifique con Protostar y vea si funciona allí

También debe asegurarse de que realmente cargó core.jscon su extensión. No es necesario cargar, especialmente no en la interfaz. Desde Joomla 3.3 puede cargarlo usando JHtmlBehavior::core(), en una versión anterior lo usaría JHtmlBehavior::framework().

Bakual
fuente