我有一段代码,我使用datatables插件。
表结构如下所示:
<thead>
<tr>
<th>col1</th>
<th>col2</th>
<th>col3</th>
<th>col4</th>
<th>col5</th>
<th>col6</th>
<th>col7</th>
<th>col8</th>
</tr>
</thead>
但请注意,在初始化代码中,我隐藏了最后四列。
在我的代码中,我执行以下操作:
if($data->responseCode < 400)
{
echo HTML Table
}
有效
else
{
echo '<tr><td colspan=4><h1 class="error">'.$data->errorMsg.'</h1></td></tr>';
}
当我这样做时,我收到以下错误:
“DataTables warning(table id ='DataTables_Table_0'):从第0行的数据源请求未知参数'1'”
这里是数据表代码:
var oTable = $('.table1').DataTable({
"iDisplayLength": 100,
"aaSortingFixed": [[0,'desc']],
"aaSorting": [ [0,'asc'] ],
"aoColumnDefs": [
{ "bVisible": false, "aTargets": [ 4,5,6,7 ] },
{ "bSearchable": false, "aTargets": [ 1,2,3,4,5,6,7] },
{ "bSearchable": true, "aTargets": [ 0 ] },
]
});
有人知道会导致什么吗?我想也许是colspan,但当我删除它时,问题仍然存在。奇怪的是我在另一个页面上使用它,它似乎处理一个空的结果集就好了。
不确定这是否有帮助,但在玩了一点后我设法得到以下错误显示在firebug中:
“TypeError:nTd未定义”
答案 0 :(得分:5)
如果您经常使用数据表,那么这是您将获得的常见错误。原因是用于创建数据表的数据格式与表列不匹配,例如,您有4列,而源数据只能提供3列。您可以发布数据格式和表格结构,让我检查一下进一步的问题。
答案 1 :(得分:0)
您的else
语句不包含table
HTML开始标记,也许这就是问题,您只能回显一行。
试试
else
{
echo '<table id="table_id" class="table1"><tr><td colspan=4><h1 class="error">'.$data->errorMsg.'</h1></td></tr></table>';
}
答案 2 :(得分:0)
这是因为dataTable会检查匹配的&#34;列&#34;在标题和&amp;身体表
else
{
echo '<tr><td>'.$data->errorMsg.'</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>';
}
它将显示为空行,并在行的第一列中显示errorMsg。
答案 3 :(得分:0)
您可以使用较小的逻辑来解决此问题,检查空记录并为每个数据表动态设置表类。
{{1}}