我正在使用jquery通过ajax将数据发送到我的数据库,成功时会显示通知,并使用用户刚刚发布的注释/信息向数据表添加一行。
出于某种原因,它将行添加两次,而不是仅添加一次。不知道为什么。
我的代码是:
<script type="text/javascript">
$(document).ready(function() {
$('#notestable').DataTable({
"paging": false,
"ordering": false,
"info": false,
"filter": false
});
$("#addnote").click(function(e) {
e.preventDefault();
var note = $("#note1").val();
var leadid = "<?echo $lead->leadid;?>";
$.ajax({
url: "/leads/addnote",
method: "POST",
data: {
note: note,
leadid: leadid
},
success: function(data) {
$('#closemodal12').trigger('click');
swal({
title: "Note added",
type: "success",
});
var notestable1 = $('#notestable').DataTable();
var lengthToCut = 23;
var short = note.substr(0, lengthToCut);
var i = 1;
var row = $('<tr>');
row.append('<td>' + short + ' </td>')
.append('<td><? echo $user->forename;?></td>')
.append('<td><? echo date('d / m / Y ');?> </td>')
.append('<td><? echo date('H: i ');?> </td>')
.append('<td><i class ="fa fa-eye"> </i></td>')
.append('<td><i class ="fa fa-trash-o"> </i></td>')
notestable1.row.add(row);
$('#notestable tbody').prepend(row);
},
error: function() {
alert("Slight problem");
}
});
});
});
</script>
答案 0 :(得分:1)
如果没有看到随之而来的标记,很难确定,但我相信问题在于这两行代码:
// Append row to notestable1 (already visible in DOM)
notestable1.row.add(row);
// (pre)Append the row again
$('#notestable tbody').prepend(row);
notestable1
似乎是一个已插入DOM的有效对象,您将该行附加到该行。然后使用$('#notestable tbody').prepend(row)
再次追加该行。