it-swarm-es.tech

Cómo representar el mensaje del sistema desde AJAX call

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 el Joomla.renderMessages llamada, 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?

10
Perino

Todas las cosas mencionadas por @Bakual son correctas, pero noto que solo está pasando el result.message A alert y dado que [alert(message)][1] espera que message sea un string o un object puede convertirse en un string este podría ser el problema.

Si result.message Es solo una cadena, entonces deberá envolverlo en un contenedor apropiado, algo como esto:

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

La función de JavaScript depende de la presencia de un contenedor con el id 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.js Con su extensión. No es necesario cargar, especialmente no en la interfaz. Desde Joomla 3.3 puedes cargarlo usando JHtmlBehavior::core(), en una versión anterior usarías JHtmlBehavior::framework().

2
Bakual