我正在使用数据表,并且希望能够发送AJAX请求以获取我的数据。
我的jQuery-
$('.valid-tags').DataTable( {
"ajax": {
"url": "/ajax/getValidTags.php",
"type": "POST",
"data": {
ruleID: ruleID
}
}
} );
这是从ajax请求返回的数据-
{"data":["K":2,"B":1,"C":2]}
我希望在自己的行中的标签名称下看到“ K”,“ B”,“ C”。
我的数据表没有加载任何数据吗?
我需要能够将每个键值对包装在其自己的数组中,因此-
{"data":["K":2,"B":1,"C":2]}
将会 -
{"data":[["K":2],["B":1],["C":2]]}
这是构建它的PHP(我在哪里将键值包装在一个对象中,使其像上面一样)?-
$validTagsArray = array();
$validArray = array();
foreach ($cursor as $key => $value) {
foreach ($value['AutoFix'] as $k => $v) {
$x = 0;
foreach ($v as $key => $value) {
$x++;
$validValueCount = $validTagsArray[$k] = $x;
}
}
}
$validArray['data'] = array($validTagsArray);
echo json_encode($validArray);
最佳答案
更改您要返回的JSON的格式,如下所示。有关更多信息,请参见Data source types。
{
"data": [
[ "K", 2 ],
[ "B", 1 ],
[ "C", 2 ]
]
}
如下所示更改您的初始化选项。
$('.valid-tags').DataTable( {
"ajax": {
"url": "/ajax/getValidTags.php",
"type": "POST",
"data": {
ruleID: ruleID
}
},
"columnDefs": [{
"targets": 2,
"render": function(data, type, full, meta){
return '<button type="button">Manage</button>';
}
}]
} );
有关代码和演示,请参见this jsFiddle。