0

这是我的代码

$('#enviarGuia').click(function () {
    var fecha = $('#fecha').val();
    var rut = $('#rut').val()
    var obs = $('#obs').val();
    var direccion = $('#direccion').val();
    var ciudad = $('#ciudad').val();
    var total = $('#total').val();
    var sucursal = $('#sucursal').val();
    if (validaSalida()) {
        respuesta = confirm("Esta seguro de guardar?")

        if (respuesta) {
            cargaCorre() // carga correlativo
            var correlativo = $('#correlativo').html();
            $('#tablasDetalle tr').not(':first').each(function () {
                var unidad = $(this).children("td:nth-child(1)").html();
                var descrip = $(this).children("td:nth-child(2)").html();
                var p_unitario = $(this).children("td:nth-child(3)").html();
                var correlativo = $('#correlativo').html();

                $.ajax({
                    type: "POST",
                    url: "../ajax/registra_guia_entrega.php",
                    data: 'unidad=' + unidad + '&descrip=' + descrip + '&p_unitario=' + p_unitario + '&correlativo=' + correlativo + '&sucursal=' + sucursal,
                    datatype: "html",
                    success: function (msg) {

                    }
                })
            })
            $.ajax({

                type: "POST",
                url: "../ajax/registra_guia_entrega.php",
                data: 'fecha=' + fecha + '&rut=' + rut + '&obs=' + obs + '&direccion=' + direccion + '&ciudad=' + ciudad + '&total=' + total + '&sucursal=' + sucursal + '&correlativo=' + correlativo,
                datatype: "html",
                success: function (msg) {
                    if (parseInt(msg) != 5) {
                        if (sucursal == "GE") {
                            top.ifrm.location.href = '../pdf/guia_entrega_pdf.php?numero=' + correlativo + '&tipo=' + sucursal;
                        } else {
                            top.ifrm.location.href = '../pdf/guia_entrega_tarapaca_pdf.php?numero=' + correlativo + '&tipo=' + sucursal;
                        }

                    }

                }
            })
        }
    }
})

问题是我在一个函数中有两个插入

第一个是

    $('#tablasDetalle tr').not(':first').each(function() {
var unidad=$(this).children("td:nth-child(1)").html();
var descrip=$(this).children("td:nth-child(2)").html();
var p_unitario=$(this).children("td:nth-child(3)").html();
var correlativo=$('#correlativo').html();

$.ajax({    
  type: "POST",
  url: "../ajax/registra_guia_entrega.php",
  data: 'unidad='+unidad+'&descrip='+descrip+'&p_unitario='+p_unitario+'&correlativo='+correlativo+'&sucursal='+sucursal,
  datatype: "html",
  success: function(msg){

  }
      })
})

这是总是不止一个插入的细节

第二个插入是

    $.ajax({

  type: "POST",
  url: "../ajax/registra_guia_entrega.php",
  data: 'fecha='+fecha+'&rut='+rut+'&obs='+obs+'&direccion='+direccion+'&ciudad='+ciudad+'&total='+total+'&sucursal='+sucursal+'&correlativo='+correlativo,
  datatype: "html",
  success: function(msg){
  if(parseInt(msg)!=5)
   {
if(sucursal=="GE")
{
 top.ifrm.location.href='../pdf/guia_entrega_pdf.php?numero='+correlativo+'&tipo='+sucursal;
}
else{
    top.ifrm.location.href='../pdf/guia_entrega_tarapaca_pdf.php?numero='+correlativo+'&tipo='+sucursal;
    }

   }

  }
      })

这是头部,始终是一个插入。

问题是当我通过 php 以 pdf 格式显示文档时

    if(sucursal=="GE")
{
 top.ifrm.location.href='../pdf/guia_entrega_pdf.php?numero='+correlativo+'&tipo='+sucursal;
}
else{
    top.ifrm.location.href='../pdf/guia_entrega_tarapaca_pdf.php?numero='+correlativo+'&tipo='+sucursal;
    }

文档显示在第一个插入周期结束之前

4

2 回答 2

1

将第二个 ajax 调用放在第一个的 success() 中。然后,您将保证它只会在第一次 ajax 调用成功后运行。当然,您只需在完成最后一个 $('#tablasDetaille tr') 元素的 ajax 后执行此操作。

$('#enviarGuia').click(function(){
    var fecha = $('#fecha').val();
    var rut = $('#rut').val()
    var obs = $('#obs').val();
    var direccion = $('#direccion').val();
    var ciudad = $('#ciudad').val();
    var total = $('#total').val();
    var sucursal = $('#sucursal').val();

    if (validaSalida()) {
        respuesta = confirm("Esta seguro de guardar?")
        if (respuesta) {
            cargaCorre() // carga correlativo
            var correlativo = $('#correlativo').html();
            $('#tablasDetalle tr').not(':first').each(function () {
                var unidad = $(this).children("td:nth-child(1)").html();
                var descrip = $(this).children("td:nth-child(2)").html();
                var p_unitario = $(this).children("td:nth-child(3)").html();
                var correlativo = $('#correlativo').html();

                $.ajax({
                    type: "POST",
                    url: "../ajax/registra_guia_entrega.php",
                    data: 'unidad=' + unidad + '&descrip=' + descrip + '&p_unitario=' + p_unitario + '&correlativo=' + correlativo + '&sucursal=' + sucursal,
                    datatype: "html",
                    success: function (msg) {
                        if (/* do something here to check that you've 
                            processed the last element in $('#tablasDetalle tr')*/)
                        $.ajax({
                            type: "POST",
                            url: "../ajax/registra_guia_entrega.php",
                            data: 'fecha=' + fecha + '&rut=' + rut + '&obs=' + obs + '&direccion=' + direccion + '&ciudad=' + ciudad + '&total=' + total + '&sucursal=' + sucursal + '&correlativo=' + correlativo,
                            datatype: "html",
                            success: function (msg) {
                                if (parseInt(msg) != 5) {
                                    if (sucursal == "GE") {
                                        top.ifrm.location.href = '../pdf/guia_entrega_pdf.php?numero=' + correlativo + '&tipo=' + sucursal;
                                    } else {
                                        top.ifrm.location.href = '../pdf/guia_entrega_tarapaca_pdf.php?numero=' + correlativo + '&tipo=' + sucursal;
                                    }
                                }
                            }
                         })
                     }
                })
            })
        }
    }
})
于 2013-10-24T22:01:01.690 回答
1

您可以添加async: false,两个 $.ajax 调用的选项。这会强制第二个 ajax 请求等到第一个结束加载。

于 2013-10-24T22:22:36.090 回答