这是我在控制器中的代码..
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函数中使用循环,这样我就可以为每条记录分配它的金额并获得总金额?
答案 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>";
.......