DataTables中的“表格中没有数据”

时间:2014-04-21 18:07:09

标签: datatables

我在尝试填充表格时收到消息。这是简化代码。

$("#showUsers").on("click", function() {
    $.ajax({
        url: "/showUsers",
        contentType: "application/json",
        processData: false,
        complete: function(data) {
            $("#output").html(data.responseText);
            $("#example").dataTable({
                "aaData": data,
                "aoColumns": [{
                    "sTitle": "Name",
                    "mDataProp": "name",
                    "sDefaultContent": ""
                }, {
                    "sTitle": "Movie",
                    "mDataProp": "movie",
                    "sDefaultContent": ""
                }]
            });
        }
    });
});

<table id="example">
    <thead>
        <th>name</th>
        <th>movie</th>
    </thead>
</table>

data被赋予有效的json:

[{
    "name": "Dan",
    "movie": "Amelie"
}, {
    "name": "Rob",
    "movie": "Dungeon"
}]

我已经读过,有时它会因为表格本身以及标题和内容而混乱,所以我尝试从表格定义中移除<thead>,但结果却出现同样的问题。

有趣的是,如果我将"aaData":data替换为"aaData":加上json本身,它就可以了。但我不能让data满足DT所需的要求。

ajax data来自node-mysql模块,该模块正常运行。

如果我将data更改为data.responseText(这是前面显示的json),我会收到警告requested unknown parameter 'name' from the data source for row 0

我知道对于任何没有经验的DataTables用户来说这应该是相当简单的,所以提前感谢。不知怎的,我无法解决它。


解决

MySQL响应带有data.responseJSON,这是一种提供给aaData的工作格式。感谢。

2 个答案:

答案 0 :(得分:1)

为了将问题标记为awnsered。

<强>解决。

mysql响应带有data.responseJSON,这是一种给aaData提供的工作格式。感谢。

答案 1 :(得分:0)

我想知道为什么我的dataTable没有填充。

aaDataiTotalRecordsiTotalDisplayRecord所需的正确json格式外,aaData必须是一个数组(['a', 'b', ...]),而不是对象({'a': 'b', ...})。