【发布时间】:2016-04-15 09:27:38
【问题描述】:
我有 2 个数据表 jsfiddle 和 3 个 json 源。它works 很好。
但我需要更改所有 json 文件:
原文:
{
"data": [{
"id": "11",
"cat1": "add1.1",
"cat2": "add1.2",
"cat3": "add1.3"
}, {
"id": "12",
"cat1": "add2.1",
"cat2": "add2.2",
"cat3": "add2.3"
}]
}
新:删除前 2 行中的 {"data": 和最后的 }
[{
"id": "11",
"cat1": "add1.1",
"cat2": "add1.2",
"cat3": "add1.3"
}, {
"id": "12",
"cat1": "add2.1",
"cat2": "add2.2",
"cat3": "add2.3"
}]
我希望如果删除jsfiddle中的.data,并将"ajax": url改为:
"ajax": {
"url": url,
"dataSrc": ""
},
这将是有效的。
原文:
$.when(call1, call2).done(function(a1, a2){
var data = a1[0].data;
data.splice.apply(data, [2, 0].concat(a2[0].data));
drawTable("#tab1","",data)
});
drawTable("#tab2","https://api.myjson.com/bins/4lpow","")
function drawTable(id, url, data) {
$(id).dataTable( {
"ajax": url,
data: data,
columnDefs: [
{ className: "hide", "targets": [ 0 ] },
],
order: [],
ordering: false,
columns: [
{ "data": "id"},
{ "data": "cat1"},
{ "data": "cat2"},
{ "data": "cat3"}
]
});
}
新:
$.when(call1, call2).done(function(a1, a2){
//removed .data
var data = a1[0];
//removed .data
data.splice.apply(data, [2, 0].concat(a2[0]));
drawTable1("#tab11","",data)
});
drawTable1("#tab21","https://api.myjson.com/bins/3tuls","")
function drawTable1(id, url, data) {
$(id).dataTable( {
"ajax": {
"url": url,
"dataSrc": ""
},
data: data,
columnDefs: [
{ className: "hide", "targets": [ 0 ] },
],
order: [],
ordering: false,
columns: [
{ "data": "id"},
{ "data": "cat1"},
{ "data": "cat2"},
{ "data": "cat3"}
]
});
}
问题是,它与jsfiddle 中的警告一起工作:
请使用 POST 请求
如果我在本地测试这个file 警告是:
DataTables 警告:表 id=tab11 - JSON 响应无效。有关此错误的更多信息,请参阅http://datatables.net/tn/1
【问题讨论】:
-
jsFiddle有语法错误,否则你的代码可以工作,见jsfiddle.net/xwp3jhq1/1
-
是的,这似乎是单独工作的。但只与警告一起。我只需要删除警告。也许最好的是在本地测试file。
-
@Scott Boston Sure,发表评论并投票赞成删除。
标签: javascript jquery arrays json datatables