生成总价格,在一个页面上的多个产品
问题描述:
我试图生成一个页面商店的总价格。生成总价格,在一个页面上的多个产品
我有一个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来进行计算。
答
为什么不使用新的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);
});
答
注意使用HTML来存储价格变量是通常是不好的礼节为什么不保持所有价格的总计?类似于
$running_total = $running_total+$product_price;
这将输出已经循环过的所有产品的总数。如果我误解了你的问题,我很抱歉。
将价格存储为HTML实体以通过POST或GET传递将变量打开以供最终用户操作。
答
不管你想要做什么。只要您在结帐时执行计算(再次?)在服务器上。
我会做所有的计算(业务逻辑)的服务器上。 – Ulises 2013-03-05 17:25:46
你有没有想过你的问题?你接受答案吗? – 2013-03-08 21:30:18