我正在尝试使用dataTables插件来处理网站的信息。我已阅读数据表的documentation和various support个主题以及various StackOverflow questions,但无法解决问题。根据上面的文档,我的代码应该工作得很好......但事实并非如此。
使用Javascript:
$(document).ready( function(){
$('#results_table').dataTable( {
'bServerSide': true,
'sAjaxSource': 'results.php',
'fnServerParams': function ( aoData ) {
aoData.push( { 't': Math.random() });
}
});
});
HTML代码:
<div id='results'>
<table id='results_table' >
<thead>
<tr>
<th>Num</th>
<th>Type</th>
<th>Access date</th>
<th>Access name</th>
</tr>
</thead>
<tbody>
</div>
PHP代码段(在检索/格式化SQL数据之后:
$output = array('sEcho'=>1,'iTotalRecords'=>$count, 'iTotalDisplayRecords'=>$count, 'aaData'=> $results);
echo json_encode($output);
返回的数据(测试总数的一小部分):
{"sEcho":1,"iTotalRecords":3,"iTotalDisplayRecords":3,"aaData":[["1707052901-1A","D","Aug 17, 2012 1:54 PM","aqr"],["1707052901-1A","C","Aug 17, 2012 1:53 PM","aqr"],["2835602-4A","D","Aug 15, 2012 7:39 AM","aqr"]]}
现在,当我加载带有数据表的页面时,我收到了一个极其有用的答案 -
未捕获的TypeError:无法读取未定义的jquery.dataTables.min.js的属性'length':49
并且表格中没有填充信息。
问题:我做错了什么;为什么我对dataTables的服务器端处理的实现不起作用?如何解决此问题才能正确显示?
答案 0 :(得分:3)
aoData.push( { 't': Math.random() });
应该像这样使用:
aoData.push( { 'name': 't', 'value':Math.random() });
不确定这是否是问题,但这解决了使用数据表时的一些问题