我遇到了麻烦,在我的代码中发现了问题。
我正在编写搜索脚本,并且我想在Datatable中显示结果。我有一个搜索表单,将数据发送到我的php文件并返回我的查询结果的json_encode,然后在ajax成功,我构建我的表将结果传递给"数据":响应。
当我在没有Datatables的情况下进行查询时,查询工作正常,但由于我需要分页和填充,我需要它来处理Datatables。
表格的HTML:
<div id="results">
<table id="example" class="display compact hover stripe" cellspacing="0" width="100%">
<thead>
<th>Cognome</th>
<th>Nome</th>
<th>Telefono</th>
<th>Provincia</th>
<th>Tipo Cliente</th>
<th>Amministrazione</th>
<th>Stato</th>
<th>Fonte</th>
<th>Data Ricezione</th>
<th></th>
</thead>
</table>
</div>
Javascript for Datatable:
$('#submit_src').on("click", function() {
$.ajax({
data: $("#ricerca").serialize(),
type: $("#ricerca").attr('method'),
url: $("#ricerca").attr('action'),
success: function(response) {
$('#example').dataTable( {
"data": response,
"sPaginationType": "listbox",
"bFilter": false,
"jQueryUI": true,
"processing": true,
'iDisplayLength': 25,
} );
}
});
return false;
});
&#34; submit_src&#34;是我提交课程的按钮,&#34; ricerca&#34;是我的表格的名称。
我得到的json代码是:
{"sEcho":0,"iTotalRecords":"35036","iTotalDisplayRecords":"1","aaData":[["stuff","stuff","stuff","stuff","stuff","stuff","stuff","stuff","stuff","stuff"]]}
错误:
DataTables warning: table id=example - Requested unknown parameter '1' for row 0.
答案 0 :(得分:1)
此链接可能有助于您尝试完成的任务:http://datatables.net/release-datatables/examples/ajax/objects.html。它解释了DataTables需要数据的数组;但是,为了使用对象,可以使用columns.data选项完成。
我还使用了没有<tbody>
的DataTables,所以这应该不是问题。
编辑: 尝试下面这个,我能够得到这些东西&#39;在表格中显示:
$('#example').dataTable( {
"data": response.aaData
} );
编辑2:
jQuery(document).ready(function() {
var response = {
"sEcho":0,"iTotalRecords":"35036","iTotalDisplayRecords":"1",
"aaData": [
["stuff","stuff","stuff","stuff","stuff","stuff","stuff","stuff","stuff","stuff"]]
};
$('#example').dataTable( {
"data": response.aaData,
//"sPaginationType": "listbox",
"bFilter": false,
"jQueryUI": true,
"processing": true,
'iDisplayLength': 25
} );
});
答案 1 :(得分:1)
您可能缺少选项
dataType : "json",
你的代码。如果没有指定,这可能会混淆从ajax脚本中收到的数据类型。
答案 2 :(得分:0)
我相信DataTables需要<tbody></tbody>
,因此它知道返回数据的位置。尝试将其添加到table#example
。
<table id="example" class="display compact hover stripe" cellspacing="0" width="100%">
<thead>
<th>Cognome</th>
<th>Nome</th>
<th>Telefono</th>
<th>Provincia</th>
<th>Tipo Cliente</th>
<th>Amministrazione</th>
<th>Stato</th>
<th>Fonte</th>
<th>Data Ricezione</th>
<th></th>
</thead>
<tbody></tbody>
</table>