数据表未正确读取 JSON 数据

Datatables not correctly reading JSON data

所以我环顾四周,找不到任何人遇到我现在遇到的问题。我使用 Jquery 数据表并使用 JSON 填充此数据表,我从 ajax 调用中收到。我不断收到 tn 4 错误,这意味着我有一个未知参数。 https://www.datatables.net/manual/tech-notes/4。但我不明白为什么会这样!我将尝试提供尽可能详细的信息,看看是否有人可以帮助我解决这个烦人的问题!

这是我收到的确切错误代码。

DataTables warning: table id = manageUsersTable - Requested unknown parameter 'CONCAT(E.FNAME, '', E.LNAME)' for row 0. For more information about this error, please see http://datatables.net/tn.4

这是我的PHP查询:

$result = $conn->query("SELECT CONCAT(E.FNAME, ' ', E.LNAME), CONCAT(M.FNAME, ' ', M.LNAME), E.ISTERMINATED FROM EMPLOYEE E INNER JOIN EMPLOYEE M ON M.ID = E.SUPERVISOR;")

这是初始化数据表的javasript:

manageUsersTable = $('#manageUsersTable').dataTable({
    "responsive": true,
    "sAjaxDataProp": "",
    "sAjaxSource": "all_emps.php",
    "aoColumns":[
        { "mData": "CONCAT(E.FNAME, ' ', E.LNAME)"},
        { "mData": "CONCAT(M.FNAME, ' ', M.LNAME)"},
        { "mData": "ISTERMINATED"}
    ]
});  
$('#manageUsersTable tbody').on( 'click', 'tr', function () {
    if ( $(this).hasClass('selected') ) {
        $(this).removeClass('selected');
    }
    else {
        manageUsersTable.$('tr.selected').removeClass('selected');
        $(this).addClass('selected');
    }
});

我有一个 ajax 调用,用于通过执行 console.log 查看数据,这是那个调用。

$.ajax({ url: 'all_emps.php',
        type: 'post',
        success: function(data){
            console.log(data);   
        }
});

这是我看到的 JSON 值:

[{"CONCAT(E.FNAME, ' ', E.LNAME)":"John Paul","CONCAT(M.FNAME, ' ', M.LNAME)":"Bob Saget","ISTERMINATED":"Employed"},{"CONCAT(E.FNAME, ' ', E.LNAME)":"Jim Bob","CONCAT(M.FNAME, ' ', M.LNAME)":"Bob Saget","ISTERMINATED":"Employed"},{"CONCAT(E.FNAME, ' ', E.LNAME)":"Saget Bob","CONCAT(M.FNAME, ' ', M.LNAME)":"Bobbity Saget","ISTERMINATED":"Employed"},{"CONCAT(E.FNAME, ' ', E.LNAME)":"Sagetty Bob","CONCAT(M.FNAME, ' ', M.LNAME)":"Bob Sagetry","ISTERMINATED":"Employed"},{"CONCAT(E.FNAME, ' ', E.LNAME)":"Sagetry Bob","CONCAT(M.FNAME, ' ', M.LNAME)":"Wilbur Wright","ISTERMINATED":"Employed"}]

尝试为您的 CONCAT() 语句设置别名。

SELECT CONCAT(E.FNAME, ' ', E.LNAME) AS name1, etc...

为您的数据库函数字段使用别名

$result = $conn->query("SELECT CONCAT(E.FNAME, ' ', E.LNAME) as ENAME, CONCAT(M.FNAME, ' ', M.LNAME) as MNAME, E.ISTERMINATED FROM EMPLOYEE E INNER JOIN EMPLOYEE M ON M.ID = E.SUPERVISOR;")

并在数据表列 defs 中使用这些名称

"aoColumns":[
    { "mData": "ENAME"},
    { "mData": "MNAME"},
    { "mData": "ISTERMINATED"}
]