Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 23 Junio 2019, 01:49 am



Título: [Pregunta]: Evitar el re-envio de datos por medio de AJAX
Publicado por: Leguim en 23 Junio 2019, 01:49 am
Buenas noches!

Quisiera saber si existe una manera de que una persona no pueda enviar varios datos de forma simultanea, para darme a entender les voy a dar un ejemplo:

Digamos que tengo un sistema de comentarios por el cual lógicamente tengo un input donde ellos enviaran sus comentarios, pero este input al ser enviado lo que hace es llamar a una funcioón ajax.js que obtiene el .value de dicho input luego ejecuta un fichero ajax... enviar.php que lo que hace es que con el contenido (.value) obtenido anteriormente crear el comentario. El único problema que encontré en mi sistema es que si una persona oprime el enter de forma super rápida una atras del otro creara varios registros y no quiero eso.. Es un problema similar al ya conocido que haces click varias veces en un submit y este registra varias veces el mismo dato..

Espero haberme dado a entender! Muchas gracias...


Título: Re: [Pregunta]: Evitar el re-envio de datos por medio de AJAX
Publicado por: iCoke en 23 Junio 2019, 22:45 pm
Probaste validar que si él usuario ya esta registrado no permita duplicar él registro?


Título: Re: [Pregunta]: Evitar el re-envio de datos por medio de AJAX
Publicado por: Leguim en 23 Junio 2019, 22:56 pm
mm no creo que te haya entendido, el sistema no es el registro sino uno de comentarios usando ajax, es decir no quiero que se creen "registros" (registros de comentarios, comentarios creados)  de forma simultanea tocando varias veces el enter y que este cree varios comentarios.


Título: Re: [Pregunta]: Evitar el re-envio de datos por medio de AJAX
Publicado por: Leguim en 28 Junio 2019, 08:38 am
alguien me podría decir como hago para "parchear" este bug?  :huh:


Título: Re: [Pregunta]: Evitar el re-envio de datos por medio de AJAX
Publicado por: xiruko en 28 Junio 2019, 10:21 am
Hola,

En tu función donde haces la petición con AJAX, deshabilita el botón de enviar cuando cojas el valor del campo del comentario, y vuelve a habilitarlo tras obtener la respuesta del servidor. Tampoco estaría mal que limpiaras el campo del comentario (eliminaras su contenido, así como el de otros campos si los hubiera, por ejemplo nombre o email) tras recibir respuesta correcta (comentario publicado) del servidor.

Saludos!