如何使用AJAX刷新JS数据表

时间:2014-08-11 20:20:27

标签: ajax datatables jquery-datatables

我正在使用AJAX加载(并随后刷新)JS数据表(v1.10.0)。我不认为我这样做是正确的,因为虽然我可以加载初始表,但后续的AJAX请求不会更新表。

我尝试了.clear(),. draw()和.rows.add()JS Datatables方法的各种组合,但似乎没有任何效果。

下面的jquery代码:

$(document).ready(function() {

    $('#results').html('<table id="table-output" class="display" cellspacing="0" width="100%"></table>');

    var table_config = {
        "bDestroy": true,
        "paging": false,
        "language": {
            "zeroRecords": "No results found",
            "processing": "<div align='center'><img src='/static/ajax-loader.gif'></div>",
            "loadingRecords": "<div align='center'><img src='/static/ajax-loader.gif'></div>"
        }
    };       

    $("form").submit(function(e) {

        e.preventDefault();

        var form_data = JSON.stringify($(this).serializeArray());

        $.ajax({
            type: 'POST',
            url: /the_url,
            data: form_data,
            contentType: 'application/json',
            dataType: 'json',
            success: function(response) {

                table_config.data = response.data;
                table_config.columns = response.columns;

                $('#table-output').dataTable(table_config);

            }
        });
    });
});

2 个答案:

答案 0 :(得分:1)

我明白了。修改成功函数如下:

success: function(response) {
                    $('#results').html('<table id="table-output" class="display" cellspacing="0" width="100%"></table>');

                    table_config.columns = response.columns;

                    var table = $('#table-output').DataTable(table_config);
                    table.clear();
                    table.rows.add(response.data);
                    table.draw();

                }

答案 1 :(得分:0)

您可以尝试:

var table1 = $('#youtblename').DataTable();
var pathp = "/server_processing_pie.php";

tablel.clear();
tablel.draw();
tablel.ajax.url(pathp).load();