首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DataTable填充Ajax

DataTable填充Ajax
EN

Stack Overflow用户
提问于 2017-11-11 19:31:12
回答 2查看 161关注 0票数 1

我有一个datatable js,我用ajax ( json )填充,在我的json中,它的返回是几个条目,我通过控制台看到这一点,但是datatable只填充了第一个json记录。

我的密码

代码语言:javascript
运行
复制
  $(document).ready(function()
    {
        $.ajax({
            type : 'POST',
            url  : 'view/list/clients_1.php',
            dataType: 'json',
            cache: false,
            success :  function(result)
            {
                //pass data to datatable

                console.log(result); // just to see I'm getting the correct data.
                $('#my_table').DataTable({
                    "searching": false, //this is disabled because I have a custom search.
                    "bAutoWidth": false,
                    "bFilter": true,
                    "bLengthChange": false,
                    "responsive": true,
                    "aaData": [result], //here we get the array data from the ajax call.
                    "aoColumns": [
                        { "sTitle": "#" },
                        { "sTitle": "Name" },
                        { "sTitle": "Work" }
                     ]
                });
            }
        });

文件代码: clients_1.php

代码语言:javascript
运行
复制
    $clients_sql = 
    "
        SELECT
            *
        FROM
            client
    ";

    $result = mysqli_query($mysqli, $clients_sql);
    $dataArray = array();
    while( $row = mysqli_fetch_array($result) )
    {
        $dataArray[] = $row["client_id"];
        $dataArray[] = $row["client_name"];
        $dataArray[] = $row["client_work"];
    }
    echo json_encode($dataArray);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-11 19:43:48

已解决

代码语言:javascript
运行
复制
            var table = $('#my_table').dataTable({

                serverSide: true,
                searching: false,
                bAutoWidth:false,
                bFilter: true,
                bLengthChange: false,
                responsive: true,
                ajax: "view/lista/clientes_1.php",
                dataSrc: 'data',
                columns: [
                    {sTitle: "#", data: 'client_id' },
                    {sTitle: "Name", data: 'client_nome' },
                    {sTitle: "Work", data: 'client_work' }
                ]
            }); // End: DataTable

            $('#search-table').unbind();
            $('#search-table').bind('keyup', function(e) {
                //if(e.keyCode == 13) {
                    table.fnFilter(this.value);
               // }
            });

PHP

代码语言:javascript
运行
复制
    $result = mysqli_query($mysqli, $clients_sql);
    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      $data[] = $row;
    }

    $results = [
        "sEcho" => 1,
        "iTotalRecords" => count($data),
        "iTotalDisplayRecords" => count($data),
        "aaData" => $data

    ];

    echo json_encode($results);
票数 1
EN

Stack Overflow用户

发布于 2022-06-30 20:34:03

我建议在sNniffer给出的答案中添加

代码语言:javascript
运行
复制
$data = [];

就在while循环的上方。

否则,当查询中没有行(并且未执行while循环)时,您将从可数据获取此警告

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47241981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档