从数据源中为 DataTables 中的第 1 行请求未知参数“0”

Posted

技术标签:

【中文标题】从数据源中为 DataTables 中的第 1 行请求未知参数“0”【英文标题】:Requested unknown parameter '0' from the data source for row 1 in DataTables 【发布时间】:2014-05-21 12:33:25 【问题描述】:

当我尝试从我的数据库中检索数据到表中时,我收到以下错误:

DataTables warning (table id = 'myTable'): Requested unknown parameter '0' from the data source for row 1

下面是我用的js

<script>
    $(document).ready(function() 
        $('#myTable').dataTable();
    );
    </script>

下面是我的桌子

<table id="myTable" class="table table-striped table-bordered table-hover table-condensed">
                    <thead>
                        <tr>
                            <th>Name</th>
                            <th>Date</th>
                            <th>Options</th>
                        </tr>
                    </thead>
                    <tbody id="myTableOK">
                         <?php echo $tableQuery ?>
                    </tbody>
                </table>

php代码

function tableQuery($linkDB)

$out = '';

$query = $linkDB -> query("SELECT id,name,date
                              FROM tbl_mytable ORDER BY name ASC");

if($query -> num_rows != 0)


    while($listOK = $query -> fetch_assoc())
    
        $out .= '
            <tr>
                <td>'.$listOK ['name'].'</td>
                <td>'.$listOK ['date'].'</td>
                <td class="centerTXT"><a data-action="edit" class="btn btn-xs" href="'.$listOK ['id'].'">Edit</a> <a data-accion="delete" class="btn btn-xs" href="'.$listOK ['id'].'">delete</a></td>
            <tr>
        ';
    


else
    $out = '
        <tr id="noData">
            <td colspan="5" class="centerTXT">DATABASE WITHOUT DATA</td>
        </tr>
    ';

return $out;

我正在使用数据表。

谁能告诉我为什么会出现这个错误以及如何将数据检索到表中?

是因为我用PHP动态显示数据库的数据记录?

谢谢。

【问题讨论】:

【参考方案1】:

在你的脚本中有echo $tableQuery,但tableQuery 是一个函数。试试这个:

<?php echo tableQuery(); ?>

【讨论】:

tableQuery 是一个函数,但它返回 $out,即表的 的 html 代码。这不是问题。 你如何在浏览器中回显$out?有两个问题: 1. 你根本没有指代函数,你指的是一个名为$tableQuery 的变量(我没有看到任何地方声明); 2.即使你正确调用了函数(使用tableQuery()),你仍然需要echo该函数返回的值。如果您在浏览器中查看 HTML 源代码,我想您会发现您的表格是空的。 DataTable 正在尝试解析表以获取一些数据,但那里什么都没有。 【参考方案2】:

Datatables需要“thead”和“tbody”中的确切列数,否则会抛出错误。

当您的 $query 没有返回任何结果时,您根本不应该返回任何文本,Datatables 将显示“No data available in table”,您可以通过将参数传递给 Datatable 构造函数来更改:

<script>
    $(document).ready(function() 
         $('#myTable').dataTable(
                "oLanguage": 
                     "sEmptyTable":     "My Custom Message On Empty Table"
                  
         );
    );
</script>

来源: How to show empty data message in Datatables

【讨论】:

以上是关于从数据源中为 DataTables 中的第 1 行请求未知参数“0”的主要内容,如果未能解决你的问题,请参考以下文章

如何从 DataTables 中的选定数据中获取数据

在 DataTables 的第二页中添加行后,操作事件不起作用

DataTables 警告:从数据源请求未知参数 '4' 用于行 ''

使用 Datatables 在 Laravel 中处理大量行的最佳方法是啥?

从 DataSet 中的 DataTables 输出数据

jquery dataTables - 如何在点击事件中提取行数据