【问题标题】:calculate the dynamic values of rate * quantity [closed]计算速率 * 数量的动态值
【发布时间】:2013-07-31 09:36:54
【问题描述】:

我有一个显示 MySQL 查询结果的 PHP 页面。 用户可以更改预期输入的数量,点击Get Total按钮,用户可以看到Item Rate * Qty Intended的结果。因此,total 可用于为用户创建凭证。

谁能指导我如何将此功能添加到我现有的页面。

我的代码目前如下所示:

<?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" />

【问题讨论】:

  • 您需要使用 javascript 将两个值相乘并放在第三个元素上
  • 您希望有人指导您或为您编写代码?因为这真的是基本的 javascript...

标签: php javascript jquery mysql


【解决方案1】:

为您的表格和“获取总数”按钮提供一个 ID:

<table id="cart">

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

将此脚本放入您页面的&lt;head&gt;

$(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/

【讨论】:

  • 帮助很大。欣赏它。
【解决方案2】:

我假设您只想在客户端进行此计算,因此使用 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

【讨论】:

    猜你喜欢
    • 2015-12-04
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多