jQuery DataTables:Plain数组或Object

时间:2015-02-06 12:28:32

标签: javascript jquery datatables jquery-datatables

使用jQuery及其插件DataTables,发现一点异常行为;如果我有一个对象,它会安静地工作;但是,如果我有一个普通数组,则出现短语:“表格中没有可用的数据”。

我找到了显示普通数组内容的解决方案:

"ajax": {
  "url": "./pages/tabledata.php",
  "dataSrc": ""
}

但当然在主题的情况下,脚本不起作用并且给我回到上面给出的短语。

我的问题是:

您可以更改附加的代码以检查对象是否是普通数组?

提前致谢

$(document).ready(function() {

	if ($('#mytable').length) {

    $('#mytable').dataTable({
      "ajax": "./pages/tabledata.php",
      "columns": [
        {"data": "id", "visible": false, "searchable": false},
        {"data": "code"},
        {"data": "name"}
      ],
      "order": [ 1, 'asc']
    })
  }

});
<script src="https://cdn.datatables.net/1.10.4/js/jquery.dataTables.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<table id="mytable" class="display">
  <thead>
    <tr>
      <th>ID</th>
      <th>Code of Data</th>
      <th>Name User</th>
    </tr>
  </thead>
</table>

对象的JSON:

{
    "data":[
        {
            "id":"1",
            "code":"PRF00001",
            "name":"Test 1"
        },{
            "id":"2",
            "code":"PRF00002",
            "name":"Test 2"
        }
    ]
}

普通数组的JSON:

{
    "data":{
        "id":"1",
        "code":"PRFS00001",
        "name":"Test 1"
    }
}

1 个答案:

答案 0 :(得分:0)

您的问题是数据表无法识别&#34;数据&#34;从普通数组格式作为数组,所以没有列出任何东西,因为它是一个对象。

但如果您将格式更改为:

{
  "data": [ //<=
    {
      "id":"1",
      "code":"PRFS00001",
      "name":"Test 1"
    }
  ] //<=
}

然后你会看到数据再次出现。

我在这里为你做了一个小提琴:http://jsfiddle.net/9chxhmk2/

这里是对数据表的已识别json格式的引用:http://datatables.net/release-datatables/examples/server_side/post.html