JavaScript - Problema con multiple llamadas a Ajax

 
Vista:

Problema con multiple llamadas a Ajax

Publicado por Hercross (1 intervención) el 31/07/2020 12:29:39
Hola buenos días..

Estoy teniendo problemas a la hora de llamar varias veces a un AJAX, solo me ejecuta la última llamada.

Tengo mi código de la siguiente forma:

Tengo un botón que al pulsarle me obtiene todas las filas seleccionadas de una tabla, y con un buclñe for las recorro y obtengo los datos y llamo con cada una de las filas a una función que me va a eliminar la fila de la tabla:

1
2
3
for(var i=0;i<table.rows( { selected: true } ).data().length;i++){
  eliminar(ids[i], names[i], extens[i]);
}

La función la tengo definida de la siguiente manera:

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
41
42
43
44
45
46
47
function eliminar(id, exten, name)
{
  alertify.confirm('Confirmación...', '¿Estás seguro de querer eliminar la extensión seleccionada?',
    function()
    {
      $.ajax({
      type: "POST",
      url: "../include/ajax_extensiones.php",
      data: "id=" + id +
            "&formid=2",
      success: function(resp)
      {
        if(resp == 1)
        {
            $.ajax({
                type: "POST",
                url: "../include/ajax_extensiones.php",
                data: "exten=" + exten +
                      "&name=" + name +
                      "&formid=6",
                success: function(resp)
                {
                    if(resp == 1)
                    {
                        $('#db_extension').DataTable().ajax.reload();
                        alertify.success("Se ha eliminado correctamente.");
                    }
                    else
                    {
                        alertify.error("Fallo en la conexión");
                    }
                }
            });
        }
        else
        {
          alertify.error("Fallo en la conexión");
        }
      }
      })
    }
    ,
    function()
    {
      alertify.error('Eliminar cancelado!')
    });
}

Si antes del primer alertify pongo un alert para que me muestre si realmente me llegan todos los datos, si que me llega cada una de las filas seleccionadas con sus datos.

Pero a la hora de ejecutar los ajax, sólo me ejecuta con el último dato recibido, los demás, aunque los recibe, no hace nada.

No se que estaré haciendo mal..

Dentro de ajax_extensiones.php, simplemente tengo una sql que me elimina la fila de la DB.

Lo tengo planteado bien? Lo estoy haciendo mal? Se puiede hacer mejor?

Muchas gracias
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