JQuery Ajax no refrescante en modal
-
26-10-2019 - |
Pregunta
Estoy usando un modal Fancybox para mostrar comentarios de una página de noticias extraída de una base de datos MySQL. El modal también tiene una sección que permite a los usuarios publicar nuevos comentarios. Estoy usando jQuery para enviar la información del formulario a otro script para procesar.
En lugar de devolver el mensaje exitoso, está publicando la información y redireccionando a la página en lugar de mostrar la información en el modal.
Aquí está la jQuery que debería hacer que esto suceda:
$(document).ready(function(){
$("#submit").click(function() {
/* Set some vars */
var messageText = $("textarea#message").val();
var newsID = $("hidden#newsid").val();
$.post('/process/newmsg.php',
{ message : messageText, newsid: newsID },
function(data) {
$("#fancybox_content").before(data);
}
);
});
});
¿Alguna idea de lo que me estoy perdiendo aquí?
Solución
Este no es un selector válido: $ ("Hidden#NewsId"). Entonces, "NewsId" está vacío y los parámetros de publicación dan un error de sintaxis
{ message : messageText, newsid: },
Otros consejos
Intente $ ("#fancybox_content"). Html (datos);
Antes () no pondrá el resultado dentro del fancybox_content, lo pondrá ante él.
Además, si el resultado es un documento HTML completo que incluye el cabezal y todo, causará problemas. Debes analizar los resultados primero
Asumiendo #submit
es un botón Enviar, debe cancelar el comportamiento predeterminado de ese botón, que es enviar el formulario. Ov que devuelva falso de la función de su controlador de clic o use e.preventDefault()
.