2013-07-31 65 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时要小心!