在form表单的input中使用onbluer
事件,调用函数中的参数若是原生php代码无效。
<?php
$total = 0;
foreach($data as $product):
?>
<tr id="tr-<?php echo $product['id'] ?>" class="products">
<td bgcolor="#ffffff" align="center" style="width:300px;">
<a href="" target="_blank"><img style="width:80px; height:80px;" src="<?php echo $product['cover'] ?>" border="0" title="<?php echo $product['title'] ?>"></a><br>
<a href="" target="_blank" class="f6"><?php echo $product['title'] ?></a>
</td>
<td align="center" bgcolor="#ffffff">¥<?php echo $product['originalprice'] ?>元</td>
<td align="center" bgcolor="#ffffff">¥<span id="p-<?php echo $product['id'] ?>"><?php echo $product['price'] ?></span>元</td>
<td align="center" bgcolor="#ffffff">
<input type="text" name="goods_number" value="<?php echo $product['num'] ?>" size="4" class="inputBg" style="text-align:center " onblur="changeNum(<?php echo $product['id'] ?>, this.value)" id="product-<?php echo $product['id'] ?>" >
</td>
<td align="center" bgcolor="#ffffff">¥<span id="total-<?php echo $product['id'] ?>"><?php echo $product['num']*$product['price'] ?></span>元</td>
<td align="center" bgcolor="#ffffff">
<a href="javascript:delPro(<?php echo $product['id'] ?>);" class="f6">删除</a>
</td>
</tr>
<?php
$total += $product['price']*$product['num'];
endforeach;
?>
<script type="text/javascript">
function changeNum(productid, num){
alert(productid);
alert(num);
//通过ajax将对应商品的数量进行修改操作
var url = "changeNum.php";
var data = {'productid':productid, 'num':num};
var success = function(response){
if(response.errno == 0){
var price = ($("#product-"+productid).val())*($("#p-"+productid).html());
$("#total-"+productid).html(price);
}
}
$.post(url, data, success, "json");
}
</script>
使用alert
弹出检测onbluer
是否有效,发现onblur="changeNum(<?php echo $product['id'] ?>, this.value)"
在consloe
中第一个参数是没有办法传递值的,其实从数据库中已经取到数据的,(this.value
就是从数据库中取出的num
的值)更改第一个使用原生php的方式传递参数,就可以弹出。非常感谢!
查看一下生成的代码