php - JQuery DataTables - 捕获 'ajax' 响应

标签 php jquery json ajax datatables

我有一个使用 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 的响应?这样我就可以检查结果是否为 { returned: "false"} 并采取相应措施?

最佳答案

花了一段时间并得到了数据表论坛“allan”的帮助。不过问题终于解决了。

通过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;
    }
},

关于php - JQuery DataTables - 捕获 'ajax' 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174569/

相关文章:

c# - 如何在 C# 中连接到 mysql 数据库并模拟 SELECT、UPDATE 和 INSERT 函数

javascript - 检查是否至少有一个文本字段被 jQuery 填充

php - Laravel 4 - 连接到其他数据库

javascript - 为什么 mousemove 的覆盖层没有在 mouseleave 上消失?

javascript - 在匿名函数中更改 $(this) 上下文

json - 如何在Dart中为 map ,多层 map 创建模型

javascript - JSON.stringify 会增加字符串的长度吗?

python - 如何使用 python3 将更改模式 json 插入 mysql 中?

javascript - 页面刷新时保留输入框中的值

php - 找不到 laravel 一对多关系列