繁体   English   中英

DataTables 警告:表 - 无效的 JSON 响应

[英]DataTables warning: table - Invalid JSON response

我知道这一定是最受欢迎的问题之一。 我看不出我的数据有什么问题。 这是我的 php:

  $sql = "SELECT eventid, event_type, date_display, date_from, date_to, location, done FROM events LIMIT 0, 30";

  $get_result = mysql_query($sql);

$arr = Array();
 while($res=mysql_fetch_assoc($get_result))
  {

              $arr['data'][] = $res;

  }

  echo json_encode($arr);

我的 JQuery:

function do_search()
{
 var search_term=$("#search_term").val();
 $.ajax
 ({
  type:'post',
  url:'get_results.php',
  data:{
   search:"search",
   search_term:search_term
  },
  success:function(response)
  {
     console.log(JSON.parse(response))

              $('#events').DataTable({
                ajax: JSON.parse(response),
                columns: [
                  { data: 'eventid' },
                  { data: 'event_type' },
                  { data: 'date_display' },
                  { data: 'date_from' },
                  { data: 'date_to' },
                  { data: 'location' },
                  { data: 'done' },
              ],
                "lengthMenu": [ [-1, 10, 25, 50, 100], ["All", 10, 25, 50, 100] ]
              });


  }
 });

还有我的 HTML:

<table id="events" class="display" style="width:100%">
          <thead>
              <tr>
                  <th>ID</th>
                  <th>Type</th>
                  <th>Date</th>
                  <th>From</th>
                  <th>To</th>
                  <th>Location</th>
                  <th>To do</th>

              </tr>
          </thead>

      </table>

这是我在控制台中获得的数据:

{
    "data": [
        {
            "eventid": "1",
            "event_type": "Senate meeting",
            "date_display": "61-60",
            "date_from": "61",
            "date_to": "60",
            "location": "Unknown",
            "done": "y"
        },
        {
            "eventid": "2",
            "event_type": "Legal hearing",
            "date_display": "73-70",
            "date_from": "73",
            "date_to": "70",
            "location": "Unknown",
            "done": ""
        },
[etc...]
    ]
}

据我所知,我正在关注DataTable 期望的数据 我错过了什么?

我为每条记录获得七个字段,该表确实有七个字段,也映射到 JQuery 代码中。

在您在此处发布的链接的示例中: https://datatables.net/examples/ajax/objects.html ,数据表配置中的ajax选项用于提供返回 JSON 数据的文件/脚本的 URL,这样数据表就可以发起 AJAX 请求来获取它。

而您所做的是发出您自己的 AJAX 请求,然后将响应传递给数据表。 如果你打算这样做,你应该通过data选项将它提供给数据表。 您现在编码的场景实际上更接近这个示例: https://datatables.net/examples/data_sources/js_array.html

例如

$('#events').DataTable({
  data: JSON.parse(response),

PS 有关如何配置 DataTables 以直接将 AJAX 请求用作数据源的更完整讨论,请参阅https://datatables.net/manual/ajax

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM