我可以使用ajax调用成功填充我的数据表,但后来我不知道如何解析数据表通过此ajax调用接收的JSON。
这是我的JavaScript代码,它对服务器进行ajax调用并正确填充我的数据表:
$('#transactions').DataTable({
"processing": true,
"ajax": {
"url": "/transactions
},
"columns": [
{ "data": "car"},
{ "data": "card_number"},
{ "data": "invoice"},
{ "data": "status"}
]
});
这是从服务器返回的JSON对象:
{
"data": [
{
"car": 190,
"card_number": "6395637",
"invoice": 200,
"status": "success"
},
{
"car": 191,
"card_number": "9473650",
"invoice": 180,
"status": "success"
}
],
"balance": 7300
}
正如您所看到的,数据表函数使用返回的JSON对象的data
参数来填充数据表,现在我想解析balance
参数,但我可以&#39 ;吨。我怎样才能做到这一点?
答案 0 :(得分:25)
这样的事情:
$('#transactions').dataTable({
"ajax" : {
"url" : "/transactions",
"dataSrc" : function (json) {
// manipulate your data (json)
...
// return the data that DataTables is to use to draw the table
return json.data;
}
}
});
答案 1 :(得分:6)
不要使用DataTable的url功能,自己进行Ajax调用
$.getJSON('/transactions', function(response) {
$('#transactions').dataTable({
processing: true,
data: response.data,
columns: [
{ data: "car"},
{ data: "card_number"},
{ data: "invoice"},
{ data: "status"}
]
});
window.someGlobalOrWhatever = response.balance
});
答案 2 :(得分:1)
从DataTables 1.10开始,您可以使用ajax.json()
函数:https://datatables.net/reference/api/ajax.json()
我在下面的示例代码中实现了它。
$( document ).ready(function() {
$('#search-form').submit(function(e) {
e.preventDefault();
var table = $('#location-table').DataTable({
destroy: true,
ajax: "/locations.json",
columns: [
{ "data": "code" },
{ "data": "status" },
{ "data": "name" },
{ "data": "region" },
{ "data": "address" },
{ "data": "city" },
{ "data": "state" },
{ "data": "zip" },
{ "data": "phone_number" },
]
})
table.on( 'xhr', function () {
var json = table.ajax.json();
$('#totals').text(json.totals)
});
})
});
请注意,要使用$('#location-table').DataTable()
而不是$('#location-table').dataTable
(差异为大写D),数据表必须初始化