2017-09-12 72 views
1

我已經嘗試了多種方法來實現這個功能。使用JQuery創建數據表。我究竟做錯了什麼?

這是我輸入:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> 
</script> 

<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js" ></script> 
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" /> 

這是我的代碼

var myUrl = "test.php"; 
$(document).ready(function() { 
    $('#ajax-content').DataTable({ 
     "ajax": myUrl, 
     "columns": [ 
      { "data": "id"}, 
      { "data": "navn"}, 
      { "data": "timeStamp"}, 
      { "data": "logged_in"}, 
      { "data": "display_status"}, 
      { "data": "logo"} 
     ] 
    }); 
}); 

這是我的JSON

{ 
    "2": { 
     "navn": "Henry", 
     "timeStamp": "1505222637", 
     "logged_in": "not online", 
     "display_status": "Doesn't work", 
     "logo": "someURL" 
    }, 
    "5": { 
     "navn": "Diana", 
     "timeStamp": "1505224159", 
     "logged_in": "Online", 
     "display_status": "Works", 
     "logo": "anotherURL" 
    } 
} 

它的罰款,如果它可以在不dataTable的完成。我懷疑我的問題是當我執行代碼的第一部分。當我嘗試做我的JQuery。

我將不勝感激,如果有人可以幫我想出了一個解決辦法:(

更新: 忘記張貼錯誤的照片,它給了我

https://i.imgur.com/TqjpeQG.png

+1

在控制檯中的任何錯誤? –

+1

我不是一個dataTable專家,但不應該有一個id字段呢?如果你在列中設置一個?它真的期待一個對象而不是一個數組嗎? – Salketer

+0

對不起,您忘記發佈圖片> _ < – Sky

回答

0

的當使用數據填充表時,jQuery數據表插件期望arrayarray of objects,您在JSON中提供對象,這是它不期望的格式—,從而導致插件中斷。

有幾種選擇做解決這個問題:

  • 更新您的API端點返回正確的格式。
  • 手工你的對象映射到一個數組(下劃線/ Lodash具有非常有用的實用功能,如果你需要分析你的手動對象)