php - 如何使用 jquery 在动态添加的表行上创建计算

标签 php jquery html mysql

您好,我有一个表单,当用户单击添加按钮时,它会从外部 php 文件动态添加表格行,到目前为止一切正常,但我有字段名称“Qty”,它将以数字形式输入并计算总的来说,我已经创建了一个计算函数,但它仅适用于第一行,有人可以帮助解决它应该如何完成吗 这是我的脚本

$(document).ready(function(){
                $('#detail').on('keyup', '.qty', calculateRow());
                $('#addnew').click(function(){

                    var ctr = $('#items').val();
                    ctr++;

                    $.post('job_srch.php', {ctr : ctr}, function(data) {
                          $(data).appendTo('#detail');

                          $('#items').val(ctr);                        
                    });
                });

function calculateSum() {

    var sum = 0;
    //iterate through each textboxes and add the values
    $(".qty").each(function (){
        //add only if the value is number
        if (!isNaN(this.value) && this.value.length != 0) {
            sum += parseFloat(this.value);
        }
    });
    //.toFixed() method will roundoff the final sum to 2 decimal places
    $("#total").val(sum.toFixed(2));
}

function calculateRow() {
    $('.qty').keyup(function () {
        //alert("entered");
        var $row = $(this).closest("tr");
        var qty = parseFloat($row.find('.qty').val());

        calculateSum();
    });
}
   });

这是我的php

session_start();
require("includes/dbconnect.php");
include ('includes/function.php');

$zdb = $_SESSION["zdbyear"];
mysql_select_db($zdb);

if ($_REQUEST["ctr"]){
    $ctr = $_REQUEST["ctr"];
    //echo '<link rel="stylesheet" href="css/chosen.css" />';
echo '<tr>

   <td align="center"><input type="text" size="6" maxlength="6" maxlength="6" name="srno_'.$ctr.'" class="form-input-oth"/></td>
   <td align="center"><select data-placeholder="Party" style="width:300px;" name="item_'.$ctr.'" class="chzn-select-deselect" >
                                  <option value=""></option>';
                      $res = mysql_query("SELECT * FROM `items`") or die(mysql_error());
                      while ($row = mysql_fetch_array($res)) {
                             echo "<option value='$row[accode]'>$row[name]</option>";
                      }
    echo '</select></td>';
    echo '<td align="center"><input type="text" id="qty" size="6" maxlength="9" maxlength="6" name="qty_'.$ctr.'" class="qty form-input-amt"/></td>

                      </tr>';
}
else{
    echo "ERROR";
}

这是我的html

           <table id="detail" border="1px" width="80%">
          <tr>
             <td width="130px" align="center"><label for=""><font color="#0099FF" size="3px">Sr No.</font><span></span></label></td>
             <td width="130px" align="center"><label for=""><font color="#0099FF" size="3px">item</font><span></span></label></td>
             <td width="130px" align="center"><label for=""><font color="#0099FF" size="3px">Quantity</font><span></span></label></td>
          </tr>

              <tr>
                  <td align="center"><input type="text" size="6" maxlength="6" maxlength="6" name="ord_0" class="form-input-oth"/></td>
                  <td align="center"><select data-placeholder="Party" style="width:300px; text-align: left;" name="item_0" class="chzn-select-deselect" >
                          <option value=""></option>
                          <?php
                                $iqry = mysql_query("SELECT * FROM `items` ") or die(mysql_error());
                                    while($trow= mysql_fetch_array($iqry)){
                                        echo "<option value=$trow[accode]>$trow[name]</option>";
                                    }
                          ?>
                      </select></td>
                  <td align="center"><input id="qty" type="text" size="6" maxlength="9" maxlength="6" name="qty_0" class="qty form-input-amt" onkeyup="return calculateSum(); "/></td>
              </tr>
<input type="button" id="addnew" class="classname" name="addnew" value="+" /> 
                          <input type="text" id="items" name="items" value=" 0" /> 

最佳答案

更改 $('#detail').on('keyup', '.qty', calculateRow()); as

$(document).on('keyup', '.qty', function(){
calculateRow(); // or code here
});

关于php - 如何使用 jquery 在动态添加的表行上创建计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16063660/

相关文章:

php - 了解用于大型数据库/表的 MySql?

PHP-我 | find "extension_dir"修改其值后不生效

php - 为什么这个正则表达式不能用于文件读取和 PHP?它适用于其他文件

javascript - Jquery - 每个相同类 li 值的总和

javascript - 使用简单的 jQuery 脚本获取一个 div 高度并使另一个 div 具有相同大小的问题

php - 如何查看所有团队成员的帖子

jquery - 仅当 #div1 的子级 div 位于 #div2 之上时,才将 #div1(可拖动)放入 #div2(可放置)中

javascript - Dropzone.js - 防止空文件上传到服务器

文本溢出容器时的 HTML/CSS 换行符

javascript - 具有表格单元格属性的 div 内的水平对齐链接