我想通过jQuery使表内联可编辑。当我按下编辑按钮表格行变为可编辑时,以前的值也会显示在文本字段中。但是当我输入新值并按下保存按钮时,我没有获得更新值,数据库也保持不变。
获取在可编辑表格行中显示的先前值的代码是:
var nam =$("#name_"+id).html();
使表格行可编辑的代码是:
$("#name_"+id).html("<input type='text' name='name' id='name_"+id+"' value='"+nam+"'>");
获取更新值的代码:
var nm = $('#name_'+id+'').text();
ajax更新数据库的请求:
url: "inlineUpdate.php?id="+id+"name="+nm,
答案 0 :(得分:1)
第1点:: ID更正
"name_"+id
同时指向两个元素,<input>
和包含<input>
的表格行。因此,对于input
ID,您必须使用其他ID,而不是两次使用"name_"+id
。例如。 "name_"+id+"_editable"
并使用它来获取更新值。
第2点::获取更新值
var nm = $('#name_'+id+'_editable').val();
此处,作为<input>
字段,因此需要使用.val()
,而不是.text()
;
Point#3 :: AJAX参数传递
url: "inlineUpdate.php?id="+id+"name="+nm,
到
url: "inlineUpdate.php?id="+id+"&name="+nm,
^----------- missed this (&)
答案 1 :(得分:0)
将输入字段ID更改为其他内容(两个元素的ID不能相同)
$("#name_"+id).html("<input type='text' name='name' id='name_"+id+"_input' value='"+nam+"'>");
使用该名称获取值
var nm = $('#name_'+id+'_input').val();