PHP Ajax如何正确使用explode

时间:2011-03-01 13:49:30

标签: php ajax arrays string forms

我有一个表单,我希望通过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] => ),就是这样。

我想要的是将每个数量乘以每个价格,然后将所有这些加在一起并返回总数,但此刻我甚至无法获得正常运行的数组。显然在某处出了问题。

有什么想法吗?

非凡

2 个答案:

答案 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);

它应该有用。