【问题标题】:DataTable - Cannot read property 'length' of nullDataTable - 无法读取 null 的属性“长度”
【发布时间】:2015-04-06 17:04:11
【问题描述】:

我有数据表:

function drawRadnici() {

                $('#tableradnici').dataTable({ 

                    "ajax": {
               "url": 'track_radnici.php',
               "type": 'POST',
               "data": {ajdi:ajdi},
               },
                    paging: false,
                    //"dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
                    // end ,
                    "columns": [ {
                            "data": "datum"}, {
                            "data": "radnik"},{
                            "data": "radnih_sati"},{
                            "data": "cena"},{
                            "data": "ukupno"},{
                            "data": "ID"}
                    ],

                    "columnDefs": [

                            {
                        "targets": 5,
                        "data": "ID",
                        "render": function(data, type, full, meta) {
                            // return data; 
                            return '<i value="'+data+'" class="fa fa-times"></i>';
                        }
                            }


    ]
                });

            };

并且工作正常,但是当我从数据库中有空的 JSON 数据时,我会得到:

Uncaught TypeError: Cannot read property 'length' of null

我没有数据时的 json 是:

{data:null}

我想做什么 - 我尝试向 ajax 添加成功功能:

"ajax": {
               "url": 'track_radnici.php',
               "type": 'POST',
               "data": {ajdi:ajdi},
"success": function (data) {
if (data == null) {
$('#tabeleradnici').html('No result');
}
}
               },

所以当我没有数据时我会尝试将文本添加到#tabeleradnici ...但这也不起作用...

【问题讨论】:

标签: javascript jquery json datatable datatables


【解决方案1】:

您可以检查它是否为 null 并将其设为空,因此 .length 仍然有效:

"success": function (data) {
    data = data || [];
}

更新:

function drawRadnici() {

    $('#tableradnici').dataTable({

        "ajax": {
            "url": 'track_radnici.php',
            "type": 'POST',
            "dataSrc": function (json) {
                if(!json.data){
            $('#tabeleradnici').html('No result');
            json.data = [];
        }
                return json.data;
            },     
            "data": {
                ajdi: ajdi
            }
        },
        paging: false,
        //"dom":' <"search"f><"top"l>rt<"bottom"ip><"clear">',
        // end ,
        "columns": [{
            "data": "datum"
        }, {
            "data": "radnik"
        }, {
            "data": "radnih_sati"
        }, {
            "data": "cena"
        }, {
            "data": "ukupno"
        }, {
            "data": "ID"
        }],

        "columnDefs": [

            {
                "targets": 5,
                "data": "ID",
                "render": function(data, type, full, meta) {
                    // return data; 
                    return '<i value="' + data + '" class="fa fa-times"></i>';
                }
            }


        ]
    });

};

【讨论】:

  • 不工作,所以成功只是一个想法,我该如何通过其他方式解决这个问题?
  • 如果没有数据,我需要销毁 #tabelaradnici 并显示文本“没有数据”...
  • 可以添加到渲染函数中吗?或者你想在哪里得到它的长度?
  • 我用 html、js 发布了我的完整代码......所以这就是全部......渲染函数呢?
  • 我如何得到:未捕获的 ReferenceError: json is not defined
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2013-03-21
  • 2019-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
相关资源
最近更新 更多