Javascript jQuery DataTable行详细信息给出了;“数据未定义”;
我使用jQuery数据表创建了一个包含行详细信息的数据表。 但是在文档中实现它之后,它在Javascript jQuery DataTable行详细信息给出了;“数据未定义”;,javascript,php,jquery,html,datatables,Javascript,Php,Jquery,Html,Datatables,我使用jQuery数据表创建了一个包含行详细信息的数据表。 但是在文档中实现它之后,它在jquerydatatables.js上给出了一个错误: data is undefined JavaScript代码: $(document).ready(function() { var dt = $('#tbl_cheque_history').DataTable({ "processing": true, "serverSide": true, "ajax": "../l
jquerydatatables.js
上给出了一个错误:
data is undefined
JavaScript代码:
$(document).ready(function() {
var dt = $('#tbl_cheque_history').DataTable({
"processing": true,
"serverSide": true,
"ajax": "../lib/load-history.php",
"columns": [{
"class": "details-control",
"orderable": false,
"data": null,
"defaultContent": ""
},
{"data": "bank_name"},
{"data": "account_number"},
{"data": "amount"},
{"data": "printed_date"},
{"data": "cheque_number"}
],
"order": [[1, 'asc']]
});
var detailRows = [];
$('#tbl_cheque_history tbody').on('click', 'tr td.details-control', function() {
var tr = $(this).closest('tr');
var row = dt.row(tr);
var idx = $.inArray(tr.attr('id'), detailRows);
if (row.child.isShown()) {
tr.removeClass('details');
row.child.hide();
// Remove from the 'open' array
detailRows.splice(idx, 1);
} else {
tr.addClass('details');
row.child(format(row.data())).show();
// Add to the 'open' array
if (idx === -1) {
detailRows.push(tr.attr('id'));
}
}
});
dt.on('draw', function() {
$.each(detailRows, function(i, id) {
$('#' + id + ' td.details-control').trigger('click');
});
});
function format(d) {
return '<div class="details-container">' +
'<table cellpadding="5" cellspacing="0" border="0" class="details-table">' +
'<tr>' +
'<td class="title">Person ID:</td>' +
'<td>' + d.bank_name + '</td>' +
'</tr>' +
'<tr>' +
'<td class="title">Name:</td>' +
'<td>' + d.account_number + '</td>' +
'<td class="title">Email:</td>' +
'<td>' + d.amount + '</td>' +
'</tr>' +
'<tr>' +
'<td class="title">Country:</td>' +
'<td>' + d.printed_date + '</td>' +
'<td class="title">IP Address:</td>' +
'<td>' + d.check_number + '</td>' +
'</tr>' +
'</table>' +
'</div>';
};
});
$(文档).ready(函数(){
var dt=$('tbl#u check_history')。数据表({
“处理”:对,
“服务器端”:正确,
“ajax”:“./lib/load history.php”,
“栏目”:[{
“类”:“详细信息控制”,
“可订购”:错误,
“数据”:空,
“defaultContent”:”
},
{“数据”:“银行名称”},
{“数据”:“账号”},
{“数据”:“金额”},
{“数据”:“打印日期”},
{“数据”:“支票号码”}
],
“订单”:[[1,‘asc']]
});
var-detailRows=[];
$('tbl#u check_history tbody')。在('click','tr td.details control',function()上{
var tr=$(this.nexist('tr');
var行=dt行(tr);
var idx=$.inArray(tr.attr('id'),detailRows);
if(row.child.isShown()){
tr.removeClass(“详细信息”);
row.child.hide();
//从“打开”数组中删除
接头(idx,1);
}否则{
tr.addClass(“详细信息”);
row.child(格式(row.data()).show();
//添加到“打开”数组
如果(idx==-1){
detailRows.push(tr.attr('id'));
}
}
});
dt.on('draw',function(){
$.each(详细信息行、函数(i、id){
$(“#”+id+“td.details控件”).trigger('click');
});
});
函数格式(d){
返回“”+
'' +
'' +
'个人ID:'+
“+d.银行名称+”+
'' +
'' +
'姓名:'+
“+d.账号+”+
'电子邮件:'+
“+d.金额+”+
'' +
'' +
“国家:”+
“+d.打印日期+”+
'IP地址:'+
''+d.检查编号+''+
'' +
'' +
'';
};
});
我的PHP:
<?php
session_start();
require("connection.php");
$dbobj = new dbconnection();
$con = $dbobj->getcon();
$sql_get_history = "SELECT bank.bank_name, bank_account.account_no, history.language, history.payee, history.amount, history.cheque_date, history.printed_date, history.printed_time, history.cheque_no, history.crossed, history.ac_payee, history.bearer FROM history, bank_account, bank ,layout WHERE layout.layout_id = history.layout_id AND layout.bank_account_id = bank_account.account_id AND bank_account.bank_id = bank.bank_id AND history.customer_id='$_SESSION[CusID]' ORDER BY history.history_id DESC";
$res_sql_get_history = mysqli_query($con, $sql_get_history);
if (mysqli_num_rows($res_sql_get_history) > 0) {
$array_history = array();
while ($row_history = mysqli_fetch_array($res_sql_get_history)) {
array_push($array_history, $row_history);
}
echo json_encode($array_history);
}
$dbobj->close();
?>
您的php输出的是一个普通数组,而不是DataTables所期望的那样。
您可以设置dataSrc
来更改DataTables期望ajax响应的外观
"ajax": {
"url": "../lib/load-history.php",
"dataSrc": ""
}
空字符串使它期望在数据下的对象中使用普通数组,而不是数组
"ajax": {
"url": "../lib/load-history.php",
"dataSrc": ""
}