jQuery DataTables:普通数组或对象
jQuery DataTables: Plain array or Object
使用jQuery及其插件DataTables,发现一些异常行为;如果我有一个对象,它会安静地工作;但是,如果我有一个普通数组,则会出现以下短语:"No data available in table".
我找到了显示普通数组内容的解决方案:
"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"
}
}
你的问题是数据表无法将普通数组格式中的 "data" 识别为数组,因此没有什么可列出的,因为它是一个对象。
但如果您将格式更改为:
{
"data": [ //<=
{
"id":"1",
"code":"PRFS00001",
"name":"Test 1"
}
] //<=
}
然后你会看到数据再次出现。
我在这里为你做了一个fiddle:http://jsfiddle.net/9chxhmk2/
这里引用了公认的 json 数据表格式:http://datatables.net/release-datatables/examples/server_side/post.html
使用jQuery及其插件DataTables,发现一些异常行为;如果我有一个对象,它会安静地工作;但是,如果我有一个普通数组,则会出现以下短语:"No data available in table".
我找到了显示普通数组内容的解决方案:
"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"
}
}
你的问题是数据表无法将普通数组格式中的 "data" 识别为数组,因此没有什么可列出的,因为它是一个对象。
但如果您将格式更改为:
{
"data": [ //<=
{
"id":"1",
"code":"PRFS00001",
"name":"Test 1"
}
] //<=
}
然后你会看到数据再次出现。
我在这里为你做了一个fiddle:http://jsfiddle.net/9chxhmk2/
这里引用了公认的 json 数据表格式:http://datatables.net/release-datatables/examples/server_side/post.html