2017-03-12 37 views
0

雖然試圖渲染AJAX源數據的DataTable,我得到一個數據表未呈現,AJAX源JSON數據

400錯誤的請求

爲Ajax響應。

JSON的我從Ajax調用得到的是下面這是由愉快Jsonlint

{ 
    "data": { 
     "title": "Seminar", 
     "pdate": "2016-02-05", 
     "duedate": "2016-03-04" 
    } 
} 

我使用的DataTable渲染AJAX源數據提出了以下的javascript驗證;

$('#table1').DataTable({ 
    ajax: { 
     url: '?r=site/test', 
     type: 'POST', 
     dataSrc: 'data' 
    }, 
    columns: [ 
     { data: 'title' }, 
     { data: 'pdate' }, 
     { data: 'duedate' } 
    ] 
}); 

這是fiddle

$b = [ 
'title'=> "Seminar", 
'pdate'=> "2016-02-05", 
'duedate' => "2016-03-04" 

]; 

$a['data'][] = $b; 
echo json_encode($a); 

怎麼了?

回答

1

data必須是「行」的陣列

documentation

用於一個DataTable 必須始終是一個數組(它 ,創建主數據源當使用DOM源數據時自動)。每個要顯示在 該數組將定義的行項和數據表可使用 三種基本的Javascript數據類型作爲數據源的行

  • 陣列 - []
  • 對象 - {}
  • 實例 - new MyClass()

因此,返回的數據從?r=site/test必須是

{ 
    "data": [{ 
     "title": "Seminar", 
     "pdate": "2016-02-05", 
     "duedate": "2016-03-04" 
    }] 
} 

fiddle

+0

能不能請添加一個模擬JSON響應到小提琴? –

+0

,因爲我仍然收到400錯誤的請求錯誤 –

+0

剛剛添加到問題中,我用於json請求的php代碼。好心檢查 。 –