前端js:
var t=$('#basic-datatables').DataTable({
'language': {
'emptyTable': '没有数据',
'loadingRecords': '加载中...',
'processing': '查询中...',
'search': '检索:',
'lengthMenu': '每页 _MENU_ 件',
'zeroRecords': '没有数据',
'paginate': {
'first': '第一页',
'last': '最后一页',
'next': '',
'previous': ''
},
'info': '共 _TOTAL_ 条记录 / _PAGES_ 页 ',
'infoEmpty': '没有数据',
'infoFiltered': '(过滤总件数 _MAX_ 条)'
},bFilter: false, //去掉搜索框方法三:这种方法可以
bLengthChange: false, //去掉每页显示多少条数据方法
//每页显示三条数据
pageLength: 3,
bStateSave:true,
serverSide: true,
ajax: function (data, callback, settings){
var pagesize = data.length;//页面显示记录条数,在页面显示每页显示多少项的时候,页大小
var start = data.start;//开始的记录序号
var page = (data.start) / data.length + 1;//当前页码
var data = {
cmd:'getMusicData',
start:start,
page: page,
pagesize: pagesize,//这里只传了当前页和页大小,如果有其他参数,可继续封装
}
$.ajax({
type: "get",
url: "getData.php",
cache : false, //禁用缓存
data: data, //传入已封装的参数
success: function(data) {
var arr = "";
if ('object' == typeof data) {
arr = data;
} else {
arr = $.parseJSON(data);//将json字符串转化为了一个Object对象
}
console.log("============数据==========")
console.log(arr)
var returnData = {};
returnData.recordsTotal = arr.data.pagination.totalCount;//totalCount指的是总记录数
returnData.recordsFiltered = arr.data.pagination.totalCount;//后台不实现过滤功能,全部的记录数都需输出到前端,记录数为总数
returnData.data = arr.data.musiclist;//这个是后台数据返回的数据列表
console.log("======returnData.data=======")
console.log(returnData.recordsTotal)
console.log(returnData.recordsFiltered)
callback(returnData);//这个别忘了!!!
}
});
// //指定数据源
// url: "getData.php",
// type:"get",
// data:{
// "cmd":'getMusicData'
// }
},
columns: [{
"data": 'ID' //此列不绑定数据源,用来显示序号
},
{
"data": "NAME"
},
{
"data": "SINGER"
}
,{
"data":"PATH"
},{
"data":null
}
],
"columnDefs": [{
// "visible": false,
//"targets": 0
},
{"orderable":true,"targets":1},
{"orderable":true,"targets":2},
{"orderable":true,"targets":3},
{
"render": function(data, type, row, meta) {
//渲染 把数据源中的标题和url组成超链接
console.log(data);
return 1;
},
//指定是第三列
"targets": 4
}],
});
后台代码:
if($cmd=='getMusicData'){
$end=$start+$pagesize;
$obj=new query();
$query="select rownum,e.* from(select rownum numrow,d.* from(select a.* from music_info a order by a.id) d where rownum<=$end )e where numrow>$start ";
$binds=array();
$i=0;
$select=$obj->do_query($conn,$query,$binds,1);
while(ocifetchinto($select,$row,OCI_ASSOC)){
$res['data']['musiclist'][$i]['ID']=$i+1;
$res['data']['musiclist'][$i]['NAME']=$row["NAME"];
$res['data']['musiclist'][$i]['SINGER']=$row["SINGER"];
$res['data']['musiclist'][$i]['PATH']=$row["PATH"];
$i++;
}
$cx="select count(id) as num from music_info";
$bd=array();
$sel=$obj->do_query($conn,$cx,$bd,1);
ocifetchinto($sel,$count,OCI_ASSOC);
$res['data']['pagination']['pageCount']=(int)($count['NUM']/$pagesize)+1;
$res['data']['pagination']['pagesize']=$pagesize;
$res['data']['pagination']['page']=$page;
$res['data']['pagination']['totalCount']=$count['NUM'];
print_r(__json_encode(array_iconv($res)));
}