我有一个表单,用于搜索注册表。此表单显示jQuery Dialog
中的信息,并且在对话框内,我正在使用Datatables
(是的,在对话框内部我有一个完整的表)。我用PHP动态生成TR和TD,然后,PHP将字符串粘贴到HTML中。
但是,当显示对话框时,我收到此错误:
oCol未定义: oCol.fnSetData(oData,val);
我在Firefox和Chrome中尝试它并且它是一样的。我也在http://www.datatables.net进行了搜索,并丢弃了一个'格式错误的表'。我不知道我做错了什么。
你能帮我解决这个问题吗?
这是我的JS Block:
<script type="text/javascript" language="javascript" src="lib/jQuery/jquery-1.6.1.js"></script>
<script type="text/javascript" language="javascript" src="lib/jQuery Ui/js/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" language="javascript" src="lib/Datatables/DataTables-1.8.0/media/js/jquery.dataTables.js"></script>
<script type="text/javascript">
$(document).ready(function (){
$("#results").dialog({
title: "Results",
width: 900,
height: 500,
open: function(event, ui){
$("#tRes").dataTable({
"bPaginate": true,
"bLengthChange": true,
"bFilter": true,
"bSort": true,
"bInfo": true,
"bAutoWidth": true
});
}
});
});
</script>
这是我的表(使用PHP代码段):
<div id="results">
<table id="tRes">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>State</th>
<th>Address</th>
</tr>
</thead>
<tbody>
<?php
echo $rows;
?>
</tbody>
</table>
</div>
先谢谢。
答案 0 :(得分:21)
这可能会发生,因为您的表格结构不正确。一定要有thead和tbody。我有这个错误,一旦我添加了thead和tbody它就消失了。我的设置与其他回复中的设置完全不同 - 我不确定为什么这个设置有效,因为它不适合我。
table
thead
tr
th`s
tbody
tr`s
td`s
答案 1 :(得分:8)
您是否尝试过如下设置列:
$("#tRes").dataTable({
"bPaginate": true,
"bLengthChange": true,
"bFilter": true,
"bSort": true,
"bInfo": true,
"bAutoWidth": true,
"aoColumns": [
null,
null //put as many null values as your columns
]
});
如果这仍然无效,你能否发布生成的html? 您可以考虑的另一件事是在document.ready上初始化表,而不仅仅是在打开对话框时,但我认为这不是问题。
答案 2 :(得分:2)
jQuery datatables插件要求<th>
标记中的元素数与{{1}中的<thead>
元素数相匹配你桌子的标签。
答案 3 :(得分:0)
$( “#TRES”)。dataTable中({ “bPaginate”:是的, “bLengthChange”:是的, “bFilter”:是的, “bSort”:是的, “bInfo”:是的, “bAutoWidth”:是的, });
从页面中删除此代码并检查文本框设置值的语法,然后它将正常工作。