在Ajax函数之后没有数据传递给URL

时间:2017-09-26 10:42:08

标签: javascript php jquery ajax

这是我用来使用Ajax将参数传递给另一个PHP页面的脚本。

static_cast<uint>(i)

但是现在网址没有收到任何参数。

为了检查它,我已经包括:

 $(document).on( "click",".btndriver", function() {

      var id = $(this).attr("id");

      var nombre = $(this).attr("nombre");
      var url = "ondemand_driver.php";
      swal({   
        title: "Select Driver?",   
        text: "Select Driver? : "+nombre+" ?",   
        type: "warning",   
        showCancelButton: true,   
        confirmButtonColor: "#DD6B55",   
        confirmButtonText: "GO",   
        closeOnConfirm: true }, 
        function(){   
          var value = {
            'id': id
          };
          $.ajax(

          {
            url : "ondemand_driver.php",
            type: "POST",
            data : value,
            success: function() {

              window.location=url
            }
          });
        });
    });

在ondemand.driver.php上,没有显示任何值。

我还检查了var id的值,它是45。

提前谢谢。

3 个答案:

答案 0 :(得分:5)

尝试以下解决方案:

$(document).on( "click",".btndriver", function() {

    var id = $(this).attr("id");

    var nombre = $(this).attr("nombre");
    var url = "ondemand_driver.php";
    swal({   
    title: "Select Driver?",   
    text: "Select Driver? : "+nombre+" ?",   
    type: "warning",   
    showCancelButton: true,   
    confirmButtonColor: "#DD6B55",   
    confirmButtonText: "GO",   
    closeOnConfirm: true }, 
    function(){   
      var value = {
        'id': id
      };
        var newForm = $('<form>', {
            'action': url,
            'target': '_top',
            'method': 'POST'
        }).append($('<input>', {
            'name': 'id',
            'value': id,
            'type': 'hidden'
        }));
        $(document.body).append(newForm);
        newForm.submit();
    });
});

这提交了一个动态创建的表单,而不是发送2个单独的请求,如redirect和ajax。

答案 1 :(得分:2)

问题是您要重定向并请求来自同一URL的信息。所以我相信它最初是有效的,但是在重定向之后,它会清除它的价值。

更好的解决方案是简单地将信息添加到您重定向到的URL中,如下所示:

window.location = "ondemand_driver.php?id=" + id;

当然,如果您不介意用户看到这一点。

如果您确实需要保密,可以使用掩码将值存储在localStorage中,并在页面重定向后对其进行检索。

答案 2 :(得分:1)

尝试这样,我之前已经完成了它并且它正在工作

$(document).on("click", ".btndriver", function () {
    var id = $(this).attr("id");
    var nombre = $(this).attr("nombre");
    var url = "ondemand_driver.php";
    swal.queue([{
            title: "Select Driver?",
            text: "Select Driver? : " + nombre + " ?",
            type: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!',
            preConfirm: function () {
                return new Promise(function (resolve) {
                    var value = {
                        'id': id
                    };
                    $.ajax({
                        type: "POST",
                        data: value,
                        url: "ondemand_driver.php",
                        success: function () {
                            window.location = url;
                        },
                        error: function () {

                        }
                    })
                })

            }
        }])
})