【问题标题】:Datatables and ajax data formatting?数据表和 ajax 数据格式?
【发布时间】:2016-04-08 11:56:09
【问题描述】:

我正在使用 Datatables,我希望能够发送 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);

【问题讨论】:

  • 获取 ajax 函数后初始化数据表。 .success function(){$('.valid-tags').DataTable()}。还要确保表中的列数相同;)
  • @Bruno 这没用,但谢谢。
  • 您在使用columns.data 吗?(datatables.net/examples/ajax/objects.html)?
  • @Bruno 'data' 和 'date' 与什么有关?
  • @Bruno 这是我正在使用的数据,我需要每个{"K":2,"B":1,"C":2} 都在标签名称列中

标签: javascript php jquery ajax datatables


【解决方案1】:

更改您返回的 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

【讨论】:

  • 问题是,我需要标签名称下的K,B,C在单独的行中。以及 Autofixes 下的值。
  • 不确定有什么不同,但我得到 No data available in table
  • @Kieron606,检查输出是否与我的答案中显示的匹配。同时检查控制台错误。
  • 我已经编辑了我的帖子,我得到了不同的输出,见上文
  • @Kieron606,您没有正确生成输出。在foreach 循环中将您的PHP 更改为`$validArray['data'][] = array($k, $v);` 并删除$validArray['data'] = array($validTagsArray) 行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
  • 2020-04-02
  • 2019-03-08
相关资源
最近更新 更多