我正在使用数据表,并且希望能够发送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”。

javascript - 数据表和Ajax数据格式化?-LMLPHP

我的数据表没有加载任何数据吗?

我需要能够将每个键值对包装在其自己的数组中,因此-

{"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

08-08 04:16
查看更多