【问题标题】:DataTable not displaying AJAX JSON dataDataTable 不显示 AJAX JSON 数据
【发布时间】:2020-05-12 12:31:27
【问题描述】:

DataTable 不显示 AJAX JSON 数据

我正在借助 DataTable 开发一个简单的项目,以使用 AJAX 显示 POST 数据。数据显示但不分页列出所有记录。 JSON 数据符合 DataTable 要求和 Jquery 中的其他设置。

对此的任何帮助将不胜感激。代码如下

HTML

<table id="dataTable" class="display" style="width:100%">
    <thead>
    <tr>
        <th>ID</th>
        <th>Qualification</th>
    </tr>
    </thead>
    <tfoot>
    <tr>
        <th>ID</th>
        <th>Qualification</th>
    </tr>
    </tfoot>
</table>

jQuery

 $(document).ready(function () {
        $('#dataTable').DataTable({
            "searching": false,
            info: false,
            "pageLength": 5,
            "lengthMenu": [[5, 10, 20, -1], [5, 10, 20, "All"]],
            "processing": true,
            "serverSide": true,
            "ajax": {
                "url": "scripts/post.php",
                "type": "POST",
                "dataType": "json",
                "dataSrc": "data",
                "data": {
                    table: 'tbl_qualification'
                },
                "success": function (data) {
                    console.log(data);
                }
            },
            "columns": [
                {"data": "pk_int_qualificationID"},
                {"data": "txt_qualificationName"}
            ]
        })
    })

服务器端(post.php)

$table=$_POST['table'];
$result=ConnectSQL::GetQuick($table,array(),array());
$result['recordsTotal']=$result['count'];
unset($result['count']);
$result['data']=$result['rows'];
unset($result['rows']);
print_r(json_encode($result));
return json_encode($result);

JSON

{
    "recordsTotal": 27,
    "data": [{
        "pk_int_qualificationID": "1",
        "txt_qualificationName": "Doctor of Medicine"
    }, {
        "pk_int_qualificationID": "2",
        "txt_qualificationName": "Internship"
    }, {
        "pk_int_qualificationID": "3",
        "txt_qualificationName": "OMSB Speciality"
    }, {
        "pk_int_qualificationID": "4",
        "txt_qualificationName": "OMSB Compelition"
    }, {
        "pk_int_qualificationID": "5",
        "txt_qualificationName": "IELTS"
    }, {
        "pk_int_qualificationID": "6",
        "txt_qualificationName": "abc"
    }, {
        "pk_int_qualificationID": "7",
        "txt_qualificationName": "abc"
    }, {
        "pk_int_qualificationID": "8",
        "txt_qualificationName": "abc"
    }, {
        "pk_int_qualificationID": "9",
        "txt_qualificationName": "abc"
    }, {
        "pk_int_qualificationID": "10",
        "txt_qualificationName": "amir"
    }, {
        "pk_int_qualificationID": "11",
        "txt_qualificationName": "Sameer"
    }, {
        "pk_int_qualificationID": "12",
        "txt_qualificationName": "amir1234"
    }, {
        "pk_int_qualificationID": "13",
        "txt_qualificationName": "Sameer5"
    }, {
        "pk_int_qualificationID": "14",
        "txt_qualificationName": "Amir12346"
    }, {
        "pk_int_qualificationID": "15",
        "txt_qualificationName": "Zubair"
    }, {
        "pk_int_qualificationID": "16",
        "txt_qualificationName": "dd"
    }, {
        "pk_int_qualificationID": "17",
        "txt_qualificationName": "dsd1"
    }, {
        "pk_int_qualificationID": "18",
        "txt_qualificationName": "abc1"
    }, {
        "pk_int_qualificationID": "19",
        "txt_qualificationName": "Abc123"
    }, {
        "pk_int_qualificationID": "20",
        "txt_qualificationName": "Sameer"
    }, {
        "pk_int_qualificationID": "21",
        "txt_qualificationName": "Sameer"
    }, {
        "pk_int_qualificationID": "22",
        "txt_qualificationName": "abc145"
    }, {
        "pk_int_qualificationID": "23",
        "txt_qualificationName": "abc"
    }, {
        "pk_int_qualificationID": "24",
        "txt_qualificationName": "abc123"
    }, {
        "pk_int_qualificationID": "25",
        "txt_qualificationName": "Sameer123"
    }, {
        "pk_int_qualificationID": "26",
        "txt_qualificationName": "dasda"
    }, {
        "pk_int_qualificationID": "29",
        "txt_qualificationName": "abc14567"
    }]
}

【问题讨论】:

    标签: javascript php json ajax datatables


    【解决方案1】:

    serverside 设置为false(或将其删除),或者将分页和排序信息添加到您的ajax 请求中。

    【讨论】:

    • 完美!有效!仅供参考,如果在AJAX请求中添加了分页和排序,以后如何链接到DataTable?
    • @AmirHussain 阅读所有相关信息here
    【解决方案2】:

    尝试添加"paging" : true。 此外,您应该在“信息”周围加上引号:"info" : false Reference

    【讨论】:

    • 我按照建议添加了。但没有变化!
    猜你喜欢
    • 2019-05-12
    • 2021-08-18
    • 1970-01-01
    • 2018-02-15
    • 2021-06-13
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2018-04-26
    相关资源
    最近更新 更多