2013-07-31 126 views
-4

我有一個顯示MySQL查詢結果的PHP頁面。 用戶可以通過點擊Get Total按鈕來改變預期的輸入量,用戶可以看到Item Rate * Qty Intended的結果。因此,total可用於爲用戶創建優惠券。計算速率*數量的動態值

任何人都可以指導我如何將此功能添加到我現有的頁面。

enter image description here

我的代碼當前如下所示:

<?php 
    include 'functions.php'; //for connection 
?> 
<table> 
<tr> 
<th>Select</font></th> 
<th>Item Desc</th> 
<th>Item Specification</th> 
<th>Item Rate</th> 
<th>Qty Intented</th> 
</tr> 

<?php 
    $sql1 = mysql_query("SELECT * from item 
      where item ='stationeries'") 
    while ($row = mysql_fetch_array($sql1, MYSQL_ASSOC)) { 
?> 
<tr> 
    <td><input type="checkbox" name="sel" /></td> 
    <td><?php echo $row['item']; ?></td> 
    <td><?php echo $row['specification']; ?></td> 
    <td><?php echo $row['rate']; ?></td> 
    <td><input type="text" name="qty" class="toAdd" id="qty" value="0.0" /></td> 
    </tr> 


<?php 
    } 
?> 
</table><br /> 
<input type="button" value="Get Total" /> 
<input type="text" id="total" /> 
+2

則需要使用JavaScript來乘3號元素的兩個值和地點 – DevZer0

+1

你希望有人來指導你或爲你編碼?因爲這是非常基本的JavaScript ... –

回答

1

給你的表和「獲得總分」按鈕的ID:

<table id="cart"> 

<input id="calculateTotal" type="button" value="Get Total" /> 

將這個腳本在你的頁面的<head>

$(function() { 
    $('#calculateTotal').click(function() { 
     var total = 0; 
     $('#cart tr:gt(0)').each(function() { 
      total += 
       parseFloat($(this).find('td:eq(3)').text()) * 
       parseFloat($(this).find('input:last').val()); 
     }); 

     // display total in textbox 
     $('#total').val(total); 
    }); 
}); 

如果要限制用戶進入整數只有(例如,您不能購買一小部分肥皂),請將此添加到您的jQuery就緒功能$(function() {

$('#cart').on('keyup', '.toAdd', function() { 
    $(this).val($(this).val().replace(/[^0-9]/, '')); 
}); 

爲了您的購物車總格式化爲小數點後兩位:

total = parseInt(total * 100)/100; 

演示:http://jsfiddle.net/WDxej/2/

+0

這是很大的幫助。欣賞它。 – aki2all

0

我假設你只想做這個計算客戶端,所以使用JavaScript。既然你也標記jQuery,我會假設你有它可用...

爲了做這個計算,你需要能夠從dom中檢索數據。要做到這一點,你可以添加屬性到你的HTML元素,在這種情況下,你可能只需添加類即可。

<tr class="item-row"> 
    <td><input type="checkbox" name="sel" class="item-checkbox" /></td> 
    <td><?php echo $row['item']; ?></td> 
    <td><?php echo $row['specification']; ?></td> 
    <td class="item-rate"><?php echo $row['rate']; ?></td> 
    <td><input type="text" name="qty" class="toAdd item-qty" id="qty" value="0.0" /></td> 
</tr> 

現在你可以輕鬆地選擇你從DOM所需的數據和你算了一筆賬:

// in button onclick handler 
$('.item-row').each(function() { 
    // this now references the row 
    var selected = $(this).find('.item-checkbox').is(':checked'); 
    var rate = parseFloat($(this).find('.item-rate').html()); 
    var qty = parseFloat($(this).find('.item-qty').html()); 

    // do calculations... 

}); 

此外,在JS做數學,especially with floats時要小心!