在我的html-php表中:
<tr id="idrow">
<td><?php echo $user_id; ?></td>
<td ><?php echo $user_name; ?></td>
<td>
<input type="button" class="btn btn-danger btn-xs delete " value="Cancella sin id" onclick="deleteFunction(<?php echo $user_id; ?>)"/>
</td>
</tr>
有一个按钮可以使用id字段通过ajax调用擦除sql行。 我的问题是在成功后更新表:
我的js代码是:
function deleteFunction(valor) {
var $tr = $('#datatable-id').closest('tr');
var id = valor;
var parametros = {
"id" : id
};
console.log(parametros);
$.ajax({
type: "POST",
url: "deleteTabla.php",
data: parametros,
success: function(result){
//$("#idrow").remove();
$tr.remove();
},
error: function () {
console.log('ajax error');
}
});
}
使用$("#idrow").remove()
,第一行被删除,而不是相关的按钮。
我认为诀窍在var $tr = $('#datatable-id').closest('tr');
上,是对tr标签的引用?
感谢任何帮助。
答案 0 :(得分:2)
如果我理解正确,每行都有相同的id(idrow)。这是你的第一个错误。在整个页面中,Ids必须是唯一的。创建具有唯一ID的行并将其传递给函数:
<tr id="idrow_<?php echo $user_id; ?>">
...
<td>
<input type="button" onclick="deleteFunction('<?php echo $user_id; ?>')"/>
</td>
</tr>
在你的功能中,只需这样做:
function deleteFunction(valor) {
...
$('#idrow_'+valor).remove();
...
}
答案 1 :(得分:1)
与tr
最接近的#datatable-id
将始终是第一行。
如果要删除特定行,请尝试分配ID。
<tr id="<?php echo $user_id;?>">
....
</tr>
然后在函数中:
function deleteFunction(valor) {
var $tr = $('#' + valor);
// delete after request is success
$tr.remove()
}
答案 2 :(得分:0)
试试这个
<tr id="idrow_<?= $user_id ?>">
成功之处:
$("#idrow_" + valor).remove();
答案 3 :(得分:0)
将功能开头的选择器更改为:var $try = $("#idrow")