数据表而不指定列

时间:2017-05-24 13:55:07

标签: php jquery datatable

我正在使用来自ClassDefinitionEvaluation

的指令在我的项目中实现datatable

现在我已经实现了相同的jquery代码,如:

   someagent_id=$(ps aux | grep someagent| grep -v grep | awk '{print $2}'\r)
   send $someagent_id

但它在我的项目中没有工作,并给出错误:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "../server_side/scripts/server_processing.php"
    } );
} ); 

但是当我在jquery中指定时:

DataTables warning: ********** Requested unknown parameter '0' for row 0. For more information about this error, please see http://datatables.net/tn/4

然后它完美地运作,那么这里的问题是什么,为什么我不能在没有指定列的情况下使用它呢?

Ajax响应:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "../server_side/scripts/server_processing.php",
         "columns": [
                { "data": "id"},
                { "data": "item" },
                { "data": "name" }
         ],
    } );
} ); 

1 个答案:

答案 0 :(得分:1)

据我所知,您正在访问一个对象数组而不是二维数组。

数据表默认行为是以这种格式接受数据:

[
    [ "row 1, cell 1", "row 1, cell 2", "row 1, cell 3" ],
    [ "row 2, cell 2", "row 2, cell 2", "row 2, cell 3" ]
]

如果您使用其他数据源格式,我相信您必须指定列,以便数据表可以映射它们。

您可以找到更多信息here

如果可能,请提供您的json响应以检查是否是这种情况。

好的,我现在可以看到你的回复了,如果用双引号包装id,它就可以了。

试试这个 - 用这个内容创建一个名为response.php的文件:

{
  "draw": 1,
  "recordsTotal": 57,
  "recordsFiltered": 57,
  "data": [
    [
      "1",
      "item1",
      "name1"
    ],
    [
      "2",
      "item2",
      "name2"
    ]
  ]
}

使用以下内容创建另一个名为test.php的文件:

<head>
<script src="http://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
</head>
<body>
<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>ID</th>
            <th>Item</th>
            <th>Name</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <th>ID</th>
            <th>Item</th>
            <th>Name</th>
        </tr>
    </tfoot>
    </table>

<script>
$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "./response.php"
    } );
} );
</script>
</body>

将这两个文件上传到您的服务器并进行测试 - 它可以正常工作。