dataTables正确解析了来自ajax的json响应

时间:2015-02-04 22:11:21

标签: jquery ajax json datatables jquery-datatables

我正在尝试使用datatables 1.10 jquery插件创建一个表。我正在尝试使用:

$(function(){
$('#example').dataTable(
{
                    "ajax":{
                            url:"getTicketList.php",
                            "columns": [
                                    { "data": "id" },
                                    { "data": "company" }
                            ]
                    }
});
});

和getTicketList.php

foreach ($ticketList as $k => $v){
    $tickets['data'][$a]['id'] = $v['ticket_id'];
    $tickets['data'][$a]['company'] = $v['listed_company'];
    $a++;
}
echo json_encode($tickets);

导致:

{"data":{"1":{"id":"20523","company”:”Acme Inc”},”2”:{“id":"23148","company”:”Walmart”}}}

和html:

<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>ID</th>
            <th>Company</th>
        </tr>
    </thead>

然而我表中没有数据。有什么想法?这是我第一次尝试使用数据表.....

根据ChrisV的建议我现在收到以下错误:

DataTables warning: table id=ticketList - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3

解决。我在页面上有一些额外的代码。

2 个答案:

答案 0 :(得分:1)

columns属性应直接显示在.dataTable(声明中,而不是嵌套在ajax属性中。

答案 1 :(得分:0)

@ChrisV是对的。所以它会是这样的:

<code>
$(function(){
$('#example').dataTable(
{
                    "ajax":{
                            url:"getTicketList.php"
                    },
                      "columns": [
                                    { "data": "id" },
                                    { "data": "company" }
                            ]
});
});
</code>