我正在创建一个dataTable,其中表的数据完全来自数据库。我试着用以下方式: HTML:
<div class="col-sm-10">
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="invoice_table" class="table table-bordered table-colstriped table-hover display">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Chain Name</th>
<th>Type</th>
<th>Amount</th>
<th>Billable Amount</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
jQuery的:
function year_month(year_month) {
jQuery("#invoice_table").dataTable({
"sAjaxSource": "invoice-request-db.php?mode=invoice_dataTable&year_month=" + jQuery("#year_month").val(),
"bDestroy": true,
"bPaginate": false,
"bInfo": false,
"bFilter": false,
"bSort": false
});
}
我必须传递一个数据,即年份和网址,以便根据我选择的年月更改数据表。但是,当我尝试使用它时,我得到&#34; TypeError:f未定义&#34;,它在jquery.dataTables.min.js中显示。这有什么不对?我应该纠正什么?
答案 0 :(得分:3)
jQuery代码出错替换为此。 dataTable({
未关闭
jQuery("#invoice_table").DataTable({
"sAjaxSource": "invoice-request-db.php?mode=invoice_dataTable",
"bDestroy": true,
"bPaginate": false,
"bInfo": false,
"bFilter": false,
"bSort": false
});
答案 1 :(得分:2)
确保包括jquery.dataTables.min.js
我遇到了同样的问题,经过几个小时的调试后,我意识到我包括dataTables.bootstrap.min.js
而不是
答案 2 :(得分:0)
这里有语法错误。
jQuery("#invoice_table").dataTable({
"sAjaxSource": "invoice-request-db.php?mode=invoice_dataTable",
"bDestroy": true,
"bPaginate": false,
"bInfo": false,
"bFilter": false,
"bSort": false
//} <--------------------- You need to remove this. It's an extra bracket
});
答案 3 :(得分:0)
如果未初始化dataTable的参数,通常会发生此Javascript错误。
解决方案:
在notePad中打开datatables.bootstrap.min.js并将这两行写在此行之后
var f = b.fn.dataTable;
// Code to Insert start
if(typeof f === "undefined")
return null;
// Code to insert End
以上
答案 4 :(得分:0)
如果表列与您的数据元素不匹配,也会发生这种情况(我删除了一个元素,但忘记删除该列,这是导致此错误的原因)。