Json 表不包括';t在对行执行删除操作后使用table.ajax.reload()刷新

Json 表不包括';t在对行执行删除操作后使用table.ajax.reload()刷新,json,datatables,Json,Datatables,我有一个表格,它正在以这种形式打印数据 var table; // DATA TABLE!!! function show_assigned_table() { $.ajax({ url: "action.php", type: "POST", data: {action:"view_assigned_course_table"}, dataType: 'json',

我有一个表格,它正在以这种形式打印数据

var table; 
  // DATA TABLE!!!
function show_assigned_table()
{
  $.ajax({
      url: "action.php", 
      type: "POST", 
      data: {action:"view_assigned_course_table"}, 
      dataType: 'json', 
    success: function(data)
    {
      console.log(data);
      table = $('#assign_table').DataTable({
        "bDestroy": true,
        data: data, 
        columns: [
        {'data': 'course_name'},
        {'data': 'teacher_name'},
        {'data': 'grade_name'},
        {'render': function(data, type, row, meta){
                    return '<a id="replace_teacher' + meta.row + '" data-value = ' + row.taught_id +
                            ' class="btn btn-outline-warning btn-sm" href="">Replace</a>&nbsp;&nbsp;<a id="remove_teacher' +
                            meta.row + '" data-value = ' +
                            row.taught_id + ' class="btn btn-outline-danger btn-sm" href="">Delete</a>';
        }},
        
        ]
      });

    },
    error: function(e)
    {
      alert("no");
    }
  });
}
此函数运行良好,除了一件事,它不会在删除行时刷新表。。。要刷新表格,我必须刷新整个页面。我只想在每次发生删除事件时刷新此表

为此,我使用了ajax.reload()函数,但它不起作用,因为它在刷新时显然没有收到JSON数据(现在我尝试搜索它,但找不到任何我能正确理解的东西。我找到了一个将数组转换为JSON的代码,但没有在代码中实现它。我在这方面还是很新)


我还尝试使用destroy函数,然后再次创建了表,但它破坏了我表的所有属性(如表的边框、搜索栏等。表的外观发生了变化)

您的问题在这一行:

$("#assign_table").DataTable().ajax.reload()
您的datatable没有,因此控制台中出现错误:

jquery.dataTables.min.js:50 Uncaught TypeError: Cannot set property 'data' of null
由于您使用jquery ajax控制datatable客户端,因此需要使用以删除行,即:

$('#assign_table').DataTable().row( $(this).closest('tr')).node().remove()
如果您希望控制服务器端的所有内容,则需要使用datatable ajax选项并稍微更改软件的逻辑。在这种情况下,我建议你看看

var数据=[
{
“教学id”:“11”,
“课程名称”:“英语”,
“等级名称”:“2”,
“章节名称”:“A”,
“教师姓名”:“阿里·哈利勒”
},
{
“教学id”:“6”,
“课程名称”:“科学”,
“等级名称”:“2”,
“章节名称”:“A”,
“教师姓名”:“Talha Ayub”
},
{
“教学id”:“8”,
“课程名称”:“科学”,
“等级名称”:“7”,
“章节名称”:“A”,
“教师姓名”:“Talha Ayub”
}
];
函数显示分配的表(){
/*
$.ajax({
url:“http://localhost:63342/StackOverflow/1.json",
类型:“POST”,
数据:{操作:“查看分配的课程表”},
数据类型:“json”,
成功:功能(数据){
*/
$('#分配_表')。数据表({
数据:数据,
栏目:[
{'data':'course_name'},
{'data':'teacher_name'},
{'data':'grade_name'},
{
“呈现”:函数(数据、类型、行、元){
返回“”;
}
}
]
});
/*
},
错误:函数(e){
警告(“否”);
}
})
*/
}
$(文档)。在(“单击”、“[id^=remove\u teacher]”上,函数(e){
var响应={
“数据”:“确定”
};
e、 预防默认值();
var crow=$('#assign_table').DataTable().row($(this.closest('tr')).node();
var id=$(this.data('value');
log('console_id-->'+id);
//$.ajax({
//url:“http://localhost:63342/StackOverflow/2.json",
//类型:“POST”,
//数据:{操作:“删除指定的教师”,id:id},
//成功:功能(响应){
response=response.data.trim();
控制台日志(响应);
如果(响应=‘确定’){
//警告(“教师已成功从课程中移除!”);
crow.remove();
}
其他的
警报(“发生错误”);
//}
//});
});
显示分配的表格()

非常感谢您!我无法告诉你这对我有多大帮助,互联网上有这么多内容,但很少有具体的内容能告诉你需要学习的东西。经过1-2周的努力,我现在也能够使用服务器端实现这个表了。非常感谢。
$('#assign_table').DataTable().row( $(this).closest('tr')).node().remove()