我的表未通过ajax正确加载。
这是我的js:
$('#initAjaxDataTable').DataTable( {
"pagingType": "full_numbers",
"processing": true,
"serverSide": true,
"ajax": {
"url": $('#initAjaxDataTable').data('url'),
"type": "POST"
},
language: {
url: SITEURL + 'libraries/datatables/datatables.german.json'
},
"columnDefs": [
{ "data": "adressnummer", "defaultContent": "<i>Keine</i>", "targets": 0 },
{ "data": "name", "defaultContent": "<i>Keine</i>", "targets": 1 },
{ "data": "email", "defaultContent": "<i>Keine</i>", "targets": 2 },
{ "data": "street", "defaultContent": "<i>Keine</i>", "targets": 3 },
{ "data": "zip", "defaultContent": "<i>Keine</i>", "targets": 4 },
{ "data": "city", "defaultContent": "<i>Keine</i>", "targets": 5 }
]
} );
这是我从服务器返回的JSON:
{"draw":1,"data":"[{"DT_RowId".........:}]","recordsTotal":24301,"recordsFiltered":50,"error":null}
数据简短示例:
[
{
"DT_RowId": "row_1",
"adressnummer": "9002",
"name": "test data",
"email": "",
"street": "test 26",
"zip": "16307 ",
"city": "test",
"DT_RowData": {
"pkey": "1"
}
},
{
"DT_RowId": "row_2",
"adressnummer": "9003",
"name": "test data",
"email": "",
"street": "test 24",
"zip": "16306 ",
"city": "test",
"DT_RowData": {
"pkey": "2"
}
},
{
"DT_RowId": "row_3",
"adressnummer": "9006",
"name": "testtest data",
"email": "",
"street": "test17",
"zip": "16306 ",
"city": "test",
"DT_RowData": {
"pkey": "3"
}
},
......
我的表:
<table class="table table-striped table-bordered " id="initAjaxDataTable" data-page-length="50" data-url="/importlist">
<thead>
<tr>
<th>AdressNummer</th>
<th>Name</th>
<th>E-Mail</th>
<th>Strasse</th>
<th>PLZ</th>
<th>Ort</th>
</tr>
</thead>
</table>
我的表显示每列中默认内容的24301倍。
我在版本1.10.9中使用jquery Datatables,在版本中使用jQuery 2.1.4
我做错了什么?
编辑:Json Lint说我的json是有效的答案 0 :(得分:0)
我已使用以下代码修复了我的问题:
"ajax": {
"url": $('#initAjaxDataTable').data('url'),
"type": "POST",
"dataSrc": function (json) {
json.data = jQuery.parseJSON(json.data);
return json.data;
}
},
我已将dataSrc属性添加到ajax并解析了我的json