2013-03-05 70 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

不管你想要做什麼。只要您在結帳時執行計算(再次?)在服務器上。

相關問題