簡體   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