0

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

我在同一页面上有不同的产品,在 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 进行计算。

4

3 回答 3

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);
});
于 2013-03-05T17:57:17.747 回答
0

注意到使用 HTML 存储价格变量通常是不好的礼仪,为什么不保留所有价格的总和呢?就像是

$running_total = $running_total+$product_price;

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

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

于 2013-03-05T17:25:42.420 回答
0

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

于 2013-03-05T17:25:42.823 回答