我正在使用来自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" }
],
} );
} );
答案 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>
将这两个文件上传到您的服务器并进行测试 - 它可以正常工作。