我有一个使用JQuery DataTables的Web应用程序。它使用ajax
参数来请求并将JSON数据插入表中。
但是,在请求的.php
文件的顶部,检查用户是否已登录。如果此检查失败,则回显JSON通知。
<?php
session_start();
if (!isset($_SESSION['logged']) || $_SESSION['logged'] !== true) {
$array = array(utf8_encode('logged')=>utf8_encode('false'));
echo json_encode($array);
exit;
}
?>
table = $('#active-issues').DataTable({
"scrollY": pixels,
"dom": '<"top"if>rt<"bottom"><"clear">',
"paging": false,
"responsive":true,
"bProcessing": true,
"ajax": {
"data": function(){
$('#active-issues').DataTable().ajax.url(
"php/get_issues.php"
+ "?id=" + id
+ "&customer_id=" + customerid
);
}
},
columns: [
{ responsivePriority: 1 },
{ responsivePriority: 2 },
{ responsivePriority: 4 },
{ responsivePriority: 3 },
{ responsivePriority: 5 },
{ responsivePriority: 6 },
{ responsivePriority: 7 }
],
"columnDefs": [
{ "type": "alt-string", targets: 5},
{ "type": "alt-string", targets: 6},
]
});
table.ajax.reload(null, false);
是否可以捕获给予JQuery DataTables的响应?这样我就可以检查结果是否为{ logged: "false" }
并采取相应的行动?
答案 0 :(得分:1)
花了一段时间,并帮助&#39; allan&#39;来自datatables论坛。但问题终于解决了。
通过dataSrc
可以在表格中打印之前操纵ajax结果,然而,我用它来检查结果是否包含logged
以及它是否等于false
如果确实如此,则采取相应行动:
"ajax": {
"data": function(){
$('#active-issues').DataTable().ajax.url(
"php/get_issues.php?id=" + id + "&customer_id=" + customerid
);
},
"dataSrc": function ( json ) {
if(typeof json['logged'] != "undefined") {
if (json['logged'] == 'false') {
location.replace('php/logout.php');
}
}
return json.aaData;
}
},
答案 1 :(得分:0)
是的,如果您在外部执行ajax cal,即执行独立的ajax请求以获取响应并确定响应是否包含,则可以执行此操作 {logged:&#34; false&#34;并相应地将数据填充到数据表中。