Pregunta:
Fecha: 17-11-2016 14:01:50
(En Español)
Votos: 1 - Respuestas: 6 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
POST repetitivo al refrescar un formulario[No resuelta]
Tengo una aplicación web que he programado usando javascript, ajax, php y json; tengo un formulario en el que tengo un botón que exporta un documento a pdf, pero si en algún momento la página se refresca, al realizar click en el botón que debe exportar el pdf, el formulario empieza a enviar de manera repetitiva el proceso de exportación del pdf según cuántas veces se haya refrescado la página, osea que si la página se refresca 5 veces antes de dar click en el botón de exportación, el formulario realiza la exportación como si se hubiera dado click al botón 5 veces.Votos: 1 - Respuestas: 6 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 17-11-2016 15:29:48 Hola
A falta de tu codigo te dare algunos tips básicos que te puedan dar una idea.
Para evitar el envio puedes enviarle una cookie al visitante cuando haya descargado por primera vez el pdf.
También puede utilizar Session en el cual podes registrar una variable de este tipo en donde le das un valor que si ha sido descargado.
Te pude servir como punto de partida.
Saludos Votos: 2 - Link respuesta -
Fecha: 18-11-2016 02:58:02 Hola,
una forma para evitar un submit al refrescar la pagina es direccionar a otra pagina.
Por ejemplo,
if($submit...) { //logica del programa //enviar a otra pagina header("location: pagina.php"); exit(0); }
Para que solo pueda hacer click una sola vez en el boton de submit agregar al evento onClick del mismo
onClick="this.disabled=true;"
Saludos,
Pablo Votos: 3 - Link respuesta -
Fecha: 18-11-2016 05:52:45 Seguro no estas válidando cuando el usuario hace click en el boton exportar, aver comparte tu código para tener un mejor panorama Votos: 1 - Link respuesta
-
Fecha: 18-11-2016 07:28:23 Hola Angel, como dice Juan, seguramente estas permitiendo que el usuario haga clic más de una vez en el botón, sino no entiendo por que casa un x tiempo se te recarga la pagina, y menos "...osea que si la página se refresca 5 veces antes de dar click en el botón de exportación, el formulario realiza la exportación como si se hubiera dado click al botón 5 veces...."
Comparte algo de código como comenta Walter y/o algunos ejemplos / url online (si fuera posible).
Saludos y buen código. Votos: 2 - Link respuesta -
Fecha: 20-11-2016 05:27:17 Buenos días, también puede ser que sea un submit dentro de un form y, a su vez, está tomando el evento click de ese botón. Entonces, se envía el formulario al servidor por el submit y se envía de nuevo por la captura del evento click del botón. Para solucionar eso, en vez de utlizar submit (type de un input) utilizar button o no propagar el evento click (o submit).
Pero, como dice Fernando, sin código es difícil hacer algún comentario
Saludos
DIEGO Votos: 1 - Link respuesta -
Fecha: 22-11-2016 08:46:10 no se se intendi bien pero yo usaria javascript antes de enviar algo a servidor ahorarias rendimiento
con un simpre return false;
y enviar el formulario con $(document).submit(); al vez de buton submit que sustituiria por un simple button que apunta en input hidden que esta en proceso y cuando termina apunta que otra vez esta disponible de envio. Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
