我想通过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,
点 #1:: ID 更正
"name_"+id
同时指向两个元素,一个包含<input>
的<input>
和表行。 因此,对于input
ID,您必须使用其他 ID,而不是使用"name_"+id
两次。 "name_"+id+"_editable"
并使用它来获取更新值。
点 #2::获取更新值
var nm = $('#name_'+id+'_editable').val();
在这里,由于它是一个<input>
字段,所以需要使用.val()
,而不是.text()
;
点 #3::AJAX 参数传递
url: "inlineUpdate.php?id="+id+"name="+nm,
自
url: "inlineUpdate.php?id="+id+"&name="+nm,
^----------- missed this (&)
将您的输入字段 id 更改为其他类似内容(两个元素不能有相同的 id)
$("#name_"+id).html("<input type='text' name='name' id='name_"+id+"_input' value='"+nam+"'>");
使用该名称获取值
var nm = $('#name_'+id+'_input').val();