2012-07-24 81 views
-2

我想在此前加上“我是一个全面的noob,所以请解释一下,就像我五岁。”我已经看了很多这个常见问题的答案,但我无法找到适合我的特定问题的答案。下面是有关的疑点。目前,用户输入订单号码。这通过ajax调用发送到php处理器脚本。处理器脚本验证订单号,然后发回数据。如果data!=“NO”,我们会发送到新页面。js/ajax POST无需提交

<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数据!=“NO”,POST的FORMDATA再次向labOrders.php使labOrders.php可以用它做对更查询D b。我尝试了很多方法,但是我没有成功。我是否以这种错误的方式去做?只要我们可以使用POST,我就可以使用所有的解决方案。

额外信息: jquery和jquery.mobile加载在头(这是一个平板应用程序)。

也许stackoverflow需要一个noob标签这样的问题。

+0

为什么你会执行第二个Ajax调用,而不是仅仅检索代替“无”在第一次通话中的数据有效的请求? – Dutchie432 2012-07-24 17:02:59

+0

我其实是这么做的。数据包含有效的订单号或“否”。我今天早上做了这个改变,但我不确定如何将数据发布到labOrders.php。再说一遍,如果我做错了,请告诉我。 – neo4jay 2012-07-24 17:07:04

+0

@ neo4jay,从'onSuccess'做一个新的AJAX请求,然后,它是相同的AJAX调用结构 – Alexander 2012-07-24 17:13:32

回答

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); 
} 
0

变化

location.href="labOrders.php"; 

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

“labOrderFind” 的 '动作' 必须是 'labOrders.php' ,如果你要使用labOrders订单号。 PHP,不要重置它的价值。