迭代动态生成的表并访问其中的td值

时间:2015-01-13 05:06:14

标签: javascript php jquery codeigniter

这是我在控制器中的代码..

function get_grproduct(){
    $goodreceipt_id=$_POST['goodreceipt_id'];

    if($goodreceipt_id!=''){
        //$post_array['cart']='';
        $res = $this->db->query("select * from phppos_productdetails WHERE 
  goodreceipt_id='$goodreceipt_id'");
        ?>
        <tr>

            <th>Particulars</th>
            <th>Packing</th>
            <th>Quantity</th>
            <th>Rate</th>
            <th>Amount</th>
            <!--<th>Action</th>-->

        </tr>
        <?php
        $i=0;
        foreach($res->result() as $row ){

            $query = $this->db->query("SELECT product_name FROM phppos_product WHERE 
 product_id='".$row->product_id."'");
            foreach($query->result() as $row1 ){
                $product_name=$row1->product_name;

            }
            echo "<tr>";
            echo "<td style='width:40%;'>".$product_name."</td>";
            echo "<td><input type='text' style='width:30%;' id='packing'/></td>";
            echo "<td><input type='text' id='quantity' style='width:80%;' readonly='' 
 value='".$row->quantity."'/></td>";
            echo "<td><input type='text' style='width:80%;' id='rate'/></td>";
            echo "<td><input type='text' style='width:100%;' id='amount' readonly=''/></td>";
            echo "</tr>";
            $i++;

        }


    }
}

在称为率的id上我再次调用了javascript function..code,如下所示..

 $("#rate").live('blur', function(){

                var rate=$(this).val();
                var qty =$('#quantity').val();
                var amt=parseInt(rate)* parseInt(qty);

                $("#amount").val(amt);

            });

所以我的问题是它将amt变量值分配给第一条记录的金额id。那么我如何在bur函数中使用循环,这样我就可以为每条记录分配它的金额并获得总金额?

1 个答案:

答案 0 :(得分:0)

您需要使用类而不是id,因为它必须是唯一的。 在最新版本的jquery中也不能使用on()作为live()。 现在,您的代码看起来像,

$("#cart_details").on('blur','.rate', function(){
     var rate=this.value;
     var $tr=$(this).closest('tr');
     var qty =$tr.find('.quantity').val(); // use quantity class not id
     var amt=parseInt(rate)* parseInt(qty);
     $tr.find(".amount").val(amt); // use amount class not id
});

在你的PHP代码中,

.......
        echo "<tr>";
        echo "<td style='width:40%;'>".$product_name."</td>";
        echo "<td><input type='text' style='width:30%;' id='packing'/></td>";
        echo "<td><input type='text' class='quantity' style='width:80%;' readonly=''  value='".$row->quantity."'/></td>";
        echo "<td><input type='text' style='width:80%;' class='rate'/></td>";
        echo "<td><input type='text' style='width:100%;' class='amount' readonly=''/></td>";
        echo "</tr>";
.......