在一个页面上生成总价格,多个产品

时间:2013-03-05 17:23:00

标签: php jquery

我正在尝试在单页商店中生成总价。

我在同一页面上有不同的产品,这是在一个foreach:

<input type="hidden" name="price_<?=$product_id?>" value="<?=$product_price?>" />
<input type="text" name="<?=$product_id?>" value="" onchange="calculateTotal();" />

因此,第一个输入被隐藏并包含产品的价格。第二个输入包含数量,名称设置为product_id。唯一的问题是一页上可能有多个输入。

哪种方法最好?使用Javascript计算价格,或使用Ajax发布并使用PHP进行计算。

3 个答案:

答案 0 :(得分:1)

为什么不使用新的data属性并跳过隐藏价格字段?像这样:

<input class='quantity' type="number" data-price="1.5"  name="prod1" value="" />
<div class='subtotal'>0.00</div>

<input class='quantity' type="number" data-price="7"  name="prod2" value="" />
<div class='subtotal'>0.00</div>

<div id='total'>0.00</div>

用这个:

$('.quantity').on('change', function(){
    var sub = $(this).val() * $(this).data('price');
    $(this).next('div.subtotal').html(sub).data('sub',sub);
    var tot=0;
    $('.subtotal').each(function(){
            tot+= $(this).data('sub');
        });
    $('div#total').html(tot);
});

答案 1 :(得分:0)

注意到使用HTML存储价格变量通常坏礼仪为什么不保持所有价格的总计?像

这样的东西
$running_total = $running_total+$product_price;

这将输出已循环的所有产品的总和。如果我误解了你的问题,我很抱歉。

将价格存储为要通过POST或GET传递的HTML实体会使变量处于打开状态,以供最终用户操作。

答案 2 :(得分:0)

随心所欲。只要您在结帐时执行计算(再次?)在服务器上