尝试使用Ajax源数据呈现数据表时,出现


  400错误的要求


作为ajax响应。

我从ajax调用中获得的Json如下所示,它很高兴地由Jsonlint验证

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


我正在使用datatables建议的以下javascript呈现ajax源数据;

$('#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);


怎么了 ?

最佳答案

data必须是“行”的数组

documentation


  用于DataTable的主要数据源必须始终是一个数组(它
  是在使用DOM来源数据时自动创建的)。中的每个项目
  该数组将定义要显示的行,并且DataTables可以使用
  三种基本的Javascript数据类型作为行的数据源
  
  
  数组-[]
  对象-{}
  实例-new MyClass()
  


因此,从?r=site/test返回的数据必须是

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


fiddle

07-26 05:49
查看更多