2014-02-21 65 views
1

我有一個可供購買的項目表,我在網站上顯示。我使用mysql來獲取所有項目並將它們顯示在表格中。其中,表中包含這樣的:使用JavaScript顯示訂單總數

<input type="hidden" name="price" id="price'.$id.'"> //id is one part of MySQL query results 
<input type="text" name="count_'.$id.'"> 

所有這一切都顯示了約200項與ID爲不完全序列(我發現用for (i = 0; i < rows.length; i++) {}一些JavaScript代碼,但是,在一個序列不是我的ID ,這對我來說不是一個好的選擇)。

我想顯示一個使用JavaScript的命令,而且我沒有遇到JS。我會非常感謝你的建議。

+1

你能在這裏發佈整個表的HTML? – Triode

+1

如果計算所有行的總數,爲什麼ID的順序很重要? –

+0

這對英語人來說有點雜亂,難以理解,有必要嗎? –

回答

1

您不需經過諾拉杜絲jQuery

function orderTotal() 
{ 
    var total=0; 
    $('input[name="price"]').each(function(){ 
     var price = parseFloat($(this).val()); 
     var amount = parseFloat($('input[name="count_'+$(this).attr('name').substring(5)+'"]').val()); 
     total += price+amount; 
    }); 
    return total; 
} 
+0

更正了「價格」和「金額」的類型。但是'count'對這種方式的引用更好,因爲它對HTML中的可能更改更加健壯。 –

+0

刪除downvote,因爲它會工作(沒有測試,如果它),但量選擇器仍然非常混亂,這是不需要的 – Martijn

+0

我同意你以前的評論,'.next()'會更簡單,但它依賴於'price'的下一個元素是'count' ...在我的版本中,如果頁面樣式發生變化,代碼將繼續工作。 –

0

我建議你將它們包裝在另一個元素中,讓我們使用div。一類補充,可以說moneyline

<div class="moneyline"> 
    <input class="price" type="hidden" name="price" id="price'.$id.'"> //id is one part of MySQL query results 
    <input class="quantity" type="text" name="count_'.$id.'"> 
</div> 

我要給與jQuery的例子,還有一些按鈕來觸發它:

$('#someButton').on('click', function(){ 
    var total = 0; 
    $('.moneyline').each(function(){ 
     var price = parseInt($(this).find('.price'), 10); 
     var quantity = parseInt($(this).find('.quantity'), 10); 
     total+= quantity*price; 
    }); 
    alert(total); 
}); 
相關問題