【问题标题】:Why is DataTable only displaying the first row of the Array为什么DataTable只显示数组的第一行
【发布时间】:2019-07-30 13:10:07
【问题描述】:

我正在使用来自 datatables.net 的 DataTable。我使用 Ajax 和 PHP 来动态填充 DataTable。挑战在于只有 Ajax 响应/数组的第一行显示在 DataTable 中。 我花了两天时间浏览互联网,但没有找到解决问题的方法。

正如您在下面看到的,我得到了一个 Ajax 响应,我循环通过它来创建一个名为“displayresult”的数组。该数组使用array.push 填充。数组的值用于填充 DataTable。如前所述,只有数组的第一行显示在 DataTable 中。

数组如下所示:

[{"1":"201909074","2":"吉姆是个很酷的人","4":"2019-06-05"},

{"1":"201906753","2":"简是个酷女孩","4":"2019-04-30"},

{"1":"201906648","2":"福福是一只很酷的狗","4":"2019-04-26"}]

  $.ajax({
  url: '../../core/search/get_general_search.php', 
  data:{sok:sok}, 
  dataType: 'json', 
    success: function(response)
  {
     console.log(JSON.stringify(response));
   var searchResult = response;
   var displayresult = [];


    for (var i in searchResult)
    {
      var row = searchResult[i];

      var reference = row[1];
      var heading = row[2];
      var documentDate = row[4];


     displayresult.push(reference, heading, documentDate);
    }   

    $('#result_table').DataTable({
      "responsive": true,
      "searching": false, 
      "aaData": [displayresult]
        });     
  }
}); //end ajax

【问题讨论】:

  • 您是否尝试将response 直接在aaData 中作为"aaData": [response] 传递??
  • 是的,它实际上适用于“aaData”:响应。没有括号。由于在呈现之前对数据进行排序,需要将数据添加到新数组中

标签: jquery arrays datatables


【解决方案1】:

您需要将对象推送到数组,而不是值

 displayresult.push({reference, heading, documentDate});
 $('#result_table').DataTable({
  "responsive": true,
  "searching": false, 
  "aaData": displayresult
    });     
 }

【讨论】:

  • 感谢您澄清这一点!现在它按预期工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多