我想在前面加上,“我是一个总菜鸟所以请解释我就像我五岁。”我已经看了很多这个常见问题的答案,但我无法找到适合我特定问题的答案。下面是有问题的脚本。目前,用户输入订单号。这通过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标签。
答案 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);
}