首页 > 解决方案 > DataTable ajax 重新加载不起作用

问题描述

我尝试了各种方法在 ajax 查询后重新加载我的数据表。但是,它只是行不通。我试过table.ajax.reload(), , 在和table.api().ajax.reload()之间切换。他们只是不工作。datatable()DataTable()

$(document).ready(function() {
    var table = $('#organizationTable').DataTable();

    $(document).on('click', '.edit-modal', function() {
        $('.modal-title').text('Edit User');
        $('#id_edit').val($(this).data('id'));
        $('#first_name_edit').val($(this).data('first_name'));
        $('#last_name_edit').val($(this).data('last_name'));
        $('#email_edit').val($(this).data('email'));
        $('#user_role_edit').val($(this).data('role_id'));
        $('#user_status_edit').val($(this).data('status_id'));
        id = $('#id_edit').val();
        $('#editModal').modal('show');
    });

    $('.modal-footer').on('click', '.edit', function() {
        if ( $( ".required" ).val().length === 0 ) {

            // Usually show some kind of error message here

            // Prevent the form from submitting
            $('#editModal').modal('show');
            event.preventDefault();
        } else {
            $.ajax({
                type: 'PUT',
                url: '/users/' + id + '/update',
                data: {
                    'id': $("#id_edit").val(),
                    'first_name': $("#first_name_edit").val(),
                    'last_name': $("#last_name_edit").val(),
                    'email': $("#email_edit").val(),
                    'role_id': $("#user_role_edit").val(),
                    'status_id': $("#user_status_edit").val()
                },
                success: function(data) {
                    console.log(data);
                    table.ajax.reload();
                }
            });
        }

    });
} );

我在标题中也有一段启动代码。

$( document ).ready(function() {
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        dataType: 'json'
    });
});

标签: jqueryajaxdatatable

解决方案


重新加载数据表的正确方法是

$('#TableID').DataTable().ajax.reload();

推荐阅读