PHP Ajax, как правильно использовать взорваться - PullRequest
0 голосов
/ 01 марта 2011

У меня есть форма, и я хочу, чтобы вычисления производились с помощью ajax и PHP. Я не думаю, что я правильно использую значение разнесения. Я не могу понять, как отделить их в файле PHP и вернуть расчет результатов. «Продукты» загружаются через ajax, поэтому мы не знаем идентификаторов, но ради этого примера я добавлю некоторые.

<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] => ) и все.

Что я хочу, так это умножить каждое количество на каждую цену, а затем сложить все это вместе и получить итоговое значение, но в настоящий момент я даже не могу получить работающий массив. Очевидно, что-то пошло не так.

Есть идеи?

Marvelous

Ответы [ 2 ]

1 голос
/ 01 марта 2011
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] переменные целые числа

Финальная версия

<?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;
?>
0 голосов
/ 01 марта 2011

Вы расширяетесь на ,, когда вы должны расширяться на &. Измените explode на

explode("&",$str);

и должно работать.

...