js / ajax POST没有提交

时间:2012-07-24 17:00:18

标签: jquery ajax jquery-mobile

我想在前面加上,“我是一个总菜鸟所以请解释我就像我五岁。”我已经看了很多这个常见问题的答案,但我无法找到适合我特定问题的答案。下面是有问题的脚本。目前,用户输入订单号。这通过ajax调用发送到php处理器脚本。处理器脚本验证订单号,然后再发送数据。如果数据!=“否”,我们会被发送到新页面。

<script type="text/javascript">
function resetTextFields()
{
    $("#orderNum").val("");                
}

function onSuccess(data, status)
{
    resetTextFields();
    // Notify the user the new post was saved
    $("#message").fadeIn(2000);
    data = $.trim(data);
    if(data != "NO")
    {
        location.href="labOrders.php";
    }
    else
    {
        $("#message").css("background-color", "#ff0000");
        $("#message").text("Not a valid order number...");
    }
    $("#message").fadeOut(2500);
}

$(document).ready(function() {
    $("#submitSearch").click(function(e){

        var formData = $("#labOrderFind").serialize();

        $.ajax({
            type: "POST",
            url: "labSearch.php",
            cache: false,
            data: formData,
            success: onSuccess
        });

        e.preventDefault();
    });


});

我想做的是onSuccess if data!=“NO”,再次将formData发送到labOrders.php,以便labOrders.php可以使用它来对数据库进行更多查找。我试过这么多方法,但我没有成功。我是以错误的方式来做这件事的吗?只要我们可以使用POST,我就会对所有解决方案持开放态度。

额外信息: jquery和jquery.mobile被加载到头部(它是一个平板电脑应用程序)。

对于像这样的问题,stackoverflow可能需要noob标签。

2 个答案:

答案 0 :(得分:0)

变化

location.href="labOrders.php";

$("#labOrderFind").submit();

“labOrderFind”的'action'必须是'labOrders.php' 如果你打算在labOrders.php中使用订单号,请不要重置它的值。

答案 1 :(得分:0)

我解决了自己的问题。以下是我的解决方案,以防其他人在将来遇到这样的问题。

我找到了这个功能。

function post(URL, PARAMS) {
    var temp=document.createElement("form");
    temp.action=URL;
    temp.method="POST";
    temp.style.display="none";
    for(var x in PARAMS) {
        var opt=document.createElement("textarea");
        opt.name=x;
        opt.value=PARAMS[x];
        temp.appendChild(opt);
    }
    document.body.appendChild(temp);
    temp.submit();
    return temp;

}

然后我稍微修改了我的onSuccess函数:

    function onSuccess(data, status)
{
    data = $.trim(data);
    if(data != "NO")
    {
                    post("labOrders.php", {
                        orderNum:data
                    })
    }
    else
    {
            resetTextFields();
        $("#message").css("background-color", "#ff0000");
        $("#message").text("Not a valid order number...");
    }
    $("#message").fadeOut(2500);
}