前台开启服务器模式: "serverSide": true,
前台排序: "aoColumnDefs": [{"bSortable": false, "aTargets": [0, 1, 2, 3, 4, 7]}](填写不需要排序字段), "order": [[5, "desc"]],根据那个排序
后台:
//$datas 为控制器传过来的值 :I(“post.”)
public function table_list($datas)
{
$draw = $datas['draw'];
//排序
$order_column = $datas['order']['0']['column'];//那一列排序,从0开始
$order_dir = $datas['order']['0']['dir'];//ase desc 升序或者降序
// 排序
$orderSql = "";
if (isset($order_column)) {
$i = intval($order_column);
switch ($i) {
case 3;
$orderSql = "a.expiretime {$order_dir}";
break;
case 4;
$orderSql = "a.createtime {$order_dir}";
break;
case 5;
$orderSql = "a.utilitytime {$order_dir}";
break;
default:
$orderSql = "a.createtime desc";
}
}
$search = $datas['search'];
$search = $search['value'];//获取前台传过来的过滤条件
//分页
$start = $datas['start'];//从多少开始
$length = $datas['length'];//数据长度
$limitFlag = isset($start) && $length != -1;
$sql = D('Wishadmin/WishUserCard');
//搜索
$where = 'a.state != 0 ';
if (strlen($search) > 0) {
$where .= "and u.username like '%$search%' or b.name like '%$search%'";
}
// echo $where;
//分页
if ($limitFlag) {
$sql->limit(intval($start), intval($length));
}
$res = $sql->alias('a')
->field('u.username as name,b.name as cardname,a.state,a.expiretime,a.createtime,a.operatetime,a.id')
->join('wish_card b on a.card_id = b.id')
->join('wish_user u on a.userid = u.userid')
->where($where)
->order($orderSql)
->select();
if (!$res) {
$this->error("数据查询失败。");
}
//查询总数量
$recordsTotal = D('Wishadmin/WishUserCard')->alias('a')
->field("count(a.id) as num")
->join('wish_card b on a.card_id = b.id')
->join('wish_user u on a.userid = u.userid')
->where($where)
->count();
$data["draw"] = intval($draw);
$data["recordsTotal"] = intval($recordsTotal);
$data["recordsFiltered"] = intval($recordsTotal);
$data["data"] = $res;
return $data;
}