DataTable - 无法读取 属性 'length' 的 null
DataTable - Cannot read property 'length' of null
我有数据表:
function drawRadnici() {
$('#tableradnici').dataTable({
"ajax": {
"url": 'track_radnici.php',
"type": 'POST',
"data": {ajdi:ajdi},
},
paging: false,
//"dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
// end ,
"columns": [ {
"data": "datum"}, {
"data": "radnik"},{
"data": "radnih_sati"},{
"data": "cena"},{
"data": "ukupno"},{
"data": "ID"}
],
"columnDefs": [
{
"targets": 5,
"data": "ID",
"render": function(data, type, full, meta) {
// return data;
return '<i value="'+data+'" class="fa fa-times"></i>';
}
}
]
});
};
并且工作正常,但是当我从数据库中获得空的 JSON 数据时,我得到:
Uncaught TypeError: Cannot read property 'length' of null
我的 json 当我没有数据时是:
{data:null}
我尝试做什么 - 我尝试将成功功能添加到 ajax:
"ajax": {
"url": 'track_radnici.php',
"type": 'POST',
"data": {ajdi:ajdi},
"success": function (data) {
if (data == null) {
$('#tabeleradnici').html('No result');
}
}
},
所以当我没有数据时我会尝试将文本添加到#tabeleradnici ...但这也不起作用...
您可以检查它是否为 null 并将其设为空,这样 .length 仍然有效:
"success": function (data) {
data = data || [];
}
更新:
function drawRadnici() {
$('#tableradnici').dataTable({
"ajax": {
"url": 'track_radnici.php',
"type": 'POST',
"dataSrc": function (json) {
if(!json.data){
$('#tabeleradnici').html('No result');
json.data = [];
}
return json.data;
},
"data": {
ajdi: ajdi
}
},
paging: false,
//"dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
// end ,
"columns": [{
"data": "datum"
}, {
"data": "radnik"
}, {
"data": "radnih_sati"
}, {
"data": "cena"
}, {
"data": "ukupno"
}, {
"data": "ID"
}],
"columnDefs": [
{
"targets": 5,
"data": "ID",
"render": function(data, type, full, meta) {
// return data;
return '<i value="' + data + '" class="fa fa-times"></i>';
}
}
]
});
};
我有数据表:
function drawRadnici() {
$('#tableradnici').dataTable({
"ajax": {
"url": 'track_radnici.php',
"type": 'POST',
"data": {ajdi:ajdi},
},
paging: false,
//"dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
// end ,
"columns": [ {
"data": "datum"}, {
"data": "radnik"},{
"data": "radnih_sati"},{
"data": "cena"},{
"data": "ukupno"},{
"data": "ID"}
],
"columnDefs": [
{
"targets": 5,
"data": "ID",
"render": function(data, type, full, meta) {
// return data;
return '<i value="'+data+'" class="fa fa-times"></i>';
}
}
]
});
};
并且工作正常,但是当我从数据库中获得空的 JSON 数据时,我得到:
Uncaught TypeError: Cannot read property 'length' of null
我的 json 当我没有数据时是:
{data:null}
我尝试做什么 - 我尝试将成功功能添加到 ajax:
"ajax": {
"url": 'track_radnici.php',
"type": 'POST',
"data": {ajdi:ajdi},
"success": function (data) {
if (data == null) {
$('#tabeleradnici').html('No result');
}
}
},
所以当我没有数据时我会尝试将文本添加到#tabeleradnici ...但这也不起作用...
您可以检查它是否为 null 并将其设为空,这样 .length 仍然有效:
"success": function (data) {
data = data || [];
}
更新:
function drawRadnici() {
$('#tableradnici').dataTable({
"ajax": {
"url": 'track_radnici.php',
"type": 'POST',
"dataSrc": function (json) {
if(!json.data){
$('#tabeleradnici').html('No result');
json.data = [];
}
return json.data;
},
"data": {
ajdi: ajdi
}
},
paging: false,
//"dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
// end ,
"columns": [{
"data": "datum"
}, {
"data": "radnik"
}, {
"data": "radnih_sati"
}, {
"data": "cena"
}, {
"data": "ukupno"
}, {
"data": "ID"
}],
"columnDefs": [
{
"targets": 5,
"data": "ID",
"render": function(data, type, full, meta) {
// return data;
return '<i value="' + data + '" class="fa fa-times"></i>';
}
}
]
});
};