2013-03-05 64 views
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来进行计算。

+1

我会做所有的计算(业务逻辑)的服务器上。 – Ulises 2013-03-05 17:25:46

+0

你有没有想过你的问题?你接受答案吗? – 2013-03-08 21:30:18

回答

0

为什么不使用新的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); 
}); 
0

注意使用HTML来存储价格变量是通常是不好的礼节为什么不保持所有价格的总计?类似于

$running_total = $running_total+$product_price; 

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

将价格存储为HTML实体以通过POST或GET传递将变量打开以供最终用户操作。

0

不管你想要做什么。只要您在结帐时执行计算(再次?)在服务器上。

相关问题