PHP - Peticion ajax guarda el mismo registro varias veces

 
Vista:
sin imagen de perfil
Val: 14
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Peticion ajax guarda el mismo registro varias veces

Publicado por Carlos (15 intervenciones) el 24/06/2019 21:59:47
que tal? Estoy teniendo un pequeño inconveniente con una aplicacion que estoy realizando y es que tengo una funcion llamada GuardarDatos(), esta funcion lo que hace es que guarda ciertos datos que tengo en un formulario html mediante AJAX. El problema que estoy teniendo es que esta funcion en ocasiones (cuando le provoca), me ingresa el mismo reegistro hasta dos y tres veces en la base de datos (duplica el mismo registro pero con IDs diferentes).

Leyendo un poco intente hacer lo siguiente:

1
2
3
4
5
6
7
beforeSend: function () {
      $("#botonGuardar").prop("disabled",true);
},
success:  function (response) {
     $("#botonGuardar").prop("disabled",false);
 
}
Sin embargo sigue haciendo lo mismo en ocasiones.

El codigo de la funcion GuardarDatos() es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html>
<html>
<head>
<title>Pruebas</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<input type="text" name="nombre" id="nombre">
<input type="text" name="apellido" id="apellido">
<input type="text" name="cedula" id="cedula">
<button onclick="GuardarDatos();" id="botonGuardar">Guardar</button>
 
<script type="text/javascript">
 
 
    function GuardarDatos(){
        var nombre = $("#nombre").val();
        var apellido = $("#apellido").val();
        var cedula = $("#cedula").val();
        var parametros = {
                "nombre" : nombre,
                "apellido" : apellido,
                "cedula" : cedula
        };
        $.ajax({
                data:  parametros,
                url:   'confirmar.php',
                type:  'post',
               beforeSend: function () {
                      $("#botonGuardar").prop("disabled",true);
                },
                success:  function (response) {
                     $("#botonGuardar").prop("disabled",false);
 
                }
        });
}
</script>
</body>
</html>
Agradesco mucho su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Peticion ajax guarda el mismo registro varias veces

Publicado por Mauro (1036 intervenciones) el 25/06/2019 21:14:02
Lo primero que deberías validar es si la función hace varias veces lo mismo (bastante poco probable) o más bien, hay situaciones en las que se está invocando a la función varias veces (Mucho más probable).

En ese sentido, el código js que publicaste apunta a la segunda posibilidad... deberías analizar cuáles son las formas en que esa función puede ser invocada y, en base a eso, tratar de determinar si está siendo llamada más de la cuenta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar