<body>
<table id="table" border="1" cellpadding="0" cellspacing="0" width="400" height="100">
<tr id="1"><td fd="name">小张</td><td fd="age">19岁</td></tr>
<tr id="2"><td fd="name">小李</td><td fd="age">20岁</td></tr>
<tr id="3"><td fd="name">小王</td><td fd="age">21岁</td></tr>
<tr id="4"><td fd="name">小赵</td><td fd="age">22岁</td></tr>
</table>
<script type="text/javascript" src="public/xheditor/jquery-1.4.4.min.js"></script>
<script>
$(document).ready(function(){
$("td").dblclick(function(){
var inval = $(this).html(); //获取选中的值
var inid = $(this).parents().attr("id"); //获取记录的id
var infd = $(this).attr("fd"); //获取选中的字段名
$(this).html("<input type='text' id='dian"+inid+infd+"' value='"+inval+"'>");//写入input
$("#dian"+inid+infd).focus().live("blur",function(){
var zhi = $(this).val();//获取失去焦点的表单的值
$(this).parents("td").html(zhi);
$.post('1.php',{id:inid,fd:infd,val:zhi});//ajax
});
});
});
</script>
</body>
1. tr标签里面的id是设置的自增id
2. fd也是td的一个属性,可以在里面设置字段名称
3. jquery里面的提到的获取记录的id实际上就是获取自增id
4. 最后的ajax传值post或者get应该都可以,不过我post没测试成功,不知道是不是后台代码的问题,所以用的get
5. js代码如下:
<script>
$(document).ready(function(){
$("td").dblclick(function(){
var inval = $(this).html(); //获取选中的值
var inid = $(this).parents().attr("id"); //获取记录的id(相当于自增id)
var infd = $(this).attr("fd"); //获取选中的字段名
$(this).html("<input type='text' id='dian"+inid+infd+"' value='"+inval+"'>");//写入input
$("#dian"+inid+infd).focus().live("blur",function(){
var zhi = $(this).val();//获取失去焦点的表单的值
$(this).parents("td").html(zhi);
//ajax
$.get(
'__URL__/BluetoothInfoEdit',
{
id:inid,
fd:infd,
val:zhi
}
);
});
});
});
</script>
后台代码:
//信息修改
public function BluetoothInfoEdit(){
$id = $_GET['id'];//ID值
$fd = $_GET['fd'];//字段名字
$val = $_GET['val'];//值
$data[$fd] = $val;
$model = M('bluetooth_upgrade');
$model->where('id='.$id)->save($data);
}
这样就可以了
注意那个$data[$fd] = $val
这句话是重点
以及save那句话的where条件也是重点,测试post的时候可能就是没有写where的原因才导致的失败!

浙公网安备 33010602011771号