我在ajax请求中有一些数据,我将其作为端点发送到php文件。
代码如下:
// some calculations above here, but to keep things minimal assume they produce the following
totalBeforeTip = 38.43;
tipTotal = 5.77;
totalWithTip = 44.48;
saleCount = "3";
console.log("List for the query String: " + totalBeforeTip
+ "\n Tips: " + tipTotal
+ " \n Totals+Tip: "+ totalWithTip
+ "\n Totals Sales: " + saleCount);
// Send get to php with q-string
$.ajax({
url:"summary.php",
type: "get",
data:{
TotalSales: saleCount,
TotalsNoTip:totalBeforeTip,
TotalTip: tipTotal,
TotalWithTip: totalWithTip
},
success: function(resp){
console.log(resp);
window.location.href = "summary.php";
},
error: function(err){
console.log(err);
}
});
我的php如下:
<main>
<?php
$TotalSales = $_GET["TotalSales"];
$TotalTips = $_GET["TotalTip"];
$TotalBeforeTip = $_GET["TotalsNoTip"];
$TotalWithTip = $_GET["TotalWithTip"];
?>
<div class='container'>
<div class='row'>
<div class='col-md-6'>
<form> <!--Main form for user interaction-->
<div class='form-group bigger-group'>
<label>Sales: </label>
<input readonly value="<?php echo $TotalSales ?>" />
</div>
<div class='form-group'>
<label>Totals Before Tips:</label>
</div>
<div class='form-group'>
<label>Total Tip Cost:</label>
</div>
<div class='form-group'>
<label>Total Cost with Tip:</label>
</div>
</div>
<div class=col-md-6>
<h1>Cost ($)</h1>
<div class='form-group'>
<input readonly value="<?php echo $TotalBeforeTip ?>"/>
</div>
<div class='form-group'>
<input readonly value="<?php echo $TotalTips ?>"/>
</div>
<div class='form-group'>
<input readonly value="<?php echo $TotalWithTip ?>"/>
</div>
</div>
</div>
</main>
当我重定向时,我的字段为空,但在控制台日志中的响应中,它们已填满。我尝试将页面重定向到resp
它没有做任何事情。通过向success: function(resp){....}
添加以下行之后,我对它进行了大量工作。
window.location = "summary.php?TotalSales="+saleCount+"&TotalsNoTip="+totalBeforeTip+"&TotalTip="+tipTotal+"&TotalWithTip="+totalWithTip;
由于某些原因,这是有效的,并且php中的字段具有正确的数据,但我不知道如何?或者为什么我用.ajax
方法传入的数据只是蒸发了?
我已经在这两天里苦苦挣扎并且它有效,但我根本不明白为什么。任何人都能解释一下吗?
答案 0 :(得分:1)
因此,结合我收到的所有反馈以及更多谷歌搜索,我了解到AJAX适用于ACTION
而不是CONTENT
,而AJAX的核心目的是在不保持页面主流的情况下执行后台处理。一些很好的例子是:
因为在我的情况下,我想将totalBeforeTip, tipTotal, totalWithTip, saleCount
发送到我的summary.php
,以根据该数据加载输入字段的内容。使用AJAX是一种糟糕的方法,因为这应该在同步过程中完成。
我使用以下代码在ajax
之外完成此操作 window.location = "summary.php?TotalSales="+saleCount+"&TotalsNoTip="+totalBeforeTip+"&TotalTip="+tipTotal+"&TotalWithTip="+totalWithTip;
我需要的只是queryString。
答案 1 :(得分:0)
window.location = "summary.php?TotalSales="+saleCount+"&TotalsNoTip="+totalBeforeTip+"&TotalTip="+tipTotal+"&TotalWithTip="+totalWithTip;
您需要这样做,因为Ajax在同一页面上获得响应,您将从该页面将响应发送到另一个页面,然后使用$ _GET [&#39;变量&#39;]获得响应。