首页 > 解决方案 > 如何使用ajax来使用post并找到它的url

问题描述

我想要实现的目标:我需要使用 POST 方法,然后在成功后,它将与 POST 数据一起定位到另一个 ajax url。

这是我到目前为止所做的:

<script>
$("#btnSubmit").click(function(){
    var ddate = $("#ddate").val();
    var empid= $("#empid").val();
    $.ajax({
        type:'POST',
        url:'../PaySlip/view_payslip.php',
        data:{numnumnum:empid,dateito:ddate},
        success:function(){
            window.location ="../PaySlip/view_payslip.php";
        }
    });
});

问题:成功后,view_payslip 无法收集我已传输的 POST 数据。我知道我做错了。这就是为什么我要寻求帮助来解决这个问题。

先感谢您。

标签: javascriptphpjquery

解决方案


您需要做的是在成功回调中发布动态表单。我的一个项目中也有类似的要求,为此我创建了一种类似于下图所示的方法。

在此方法中,您需要传递 URL、windows 选项和参数,这是您的数据对象,名称是窗口名称,如果您想在同一个窗口中打开,那么您可以在名称参数中传递空白而不是打开新窗口并省略window.open()语句。您可以根据您的要求对其进行修改。

function submitDynamicForm(url, windowoption, name, params)
{
    var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("action", url);
    form.setAttribute("target", name);
    for (var key in params) {
        if (params.hasOwnProperty(key)) {
            var input = document.createElement('input');
            input.type = 'hidden';
            input.name = key;
            input.value = params[key];
            form.appendChild(input);
        }
    }
    document.body.appendChild(form);
    window.open("", name, windowoption);
    form.submit();
    document.body.removeChild(form);
}

推荐阅读