我有一个表单,我希望通过ajax和PHP完成计算。我认为我没有正确使用爆炸值。我无法弄清楚如何在PHP文件中分离这些并返回结果的计算。 '产品'是通过ajax加载的,所以我们不知道id,但是为了这个例子,我会把它放进去。
<script type="text/javascript">function test() {
var price1682 = 300;
var quant1682 = $('#product_quantity_PRI_1682');
var price2572 = 0;
var quant2572 = $('#product_quantity_PRI_2572');
var price2573 = 0;
var quant2573 = $('#product_quantity_PRI_2573');
var dataString = 'price1682=' + price1682+'&quant1682=' + quant1682+'&price2572=' + price2572+'&quant2572=' + quant2572+'&price2573=' + price2573+'&quant2573=' + quant2573+'&end=' + 'end' ;
$.ajax({
type: 'POST',
url: 'http://www.divethegap.com/update/wp-content/themes/master/functions/totals.php',
data: dataString,
beforeSend: function() {
$('#results').html('processing');
},
error: function() {
$('#results').html('failure');
},
success: function(alphas) {
$('#results').html(alphas);
}
});
}</script>
和PHP
<?php
$str = $_POST['dataString'];
print_r (explode(",",$str));
?>
现在结果是Array ( [0] => )
,就是这样。
我想要的是将每个数量乘以每个价格,然后将所有这些加在一起并返回总数,但此刻我甚至无法获得正常运行的数组。显然在某处出了问题。
有什么想法吗?
非凡
答案 0 :(得分:1)
var dataString = 'price[1682]=' + price1682+'&quant[1682]=' + quant1682+'&price[2572]='
+ price2572+'&quant[2572]=' + quant2572+'&price[2573]=' + price2573+'&quant[2573]='
+ quant2573+'&end=' + 'end' ;
现在结果如下:
print_r($_POST['price']);
print_r($_POST['quant']);
<强> UPD:强>
foreach($price as $id => $p) {
// Current id
$id;
// Current price
$p;
// Current quantity
$_POST['quant'][$id];
// Miltiply:
$somevar = $p * $_POST['quant'][$id];
}
别忘了检查所有_POST[price]
/ _POST[quant]
vars是整数
最终版
<?php
$totalprice = 0;
foreach($_POST['price'] as $id => $price) {
// Current id:
// $id;
// Current price:
// $price;
// Current quantity:
// $_POST['quant'][$id];
// Multiply:
$somevar = $price * $_POST['quant'][$id];
$totalprice += $somevar;
}
echo $totalprice;
?>
答案 1 :(得分:0)
当你应该扩展,
时,你正在扩展&
。将explode
更改为
explode("&",$str);
它应该有用。