做出来的效果如下图:

通过不同条件的组合,实现结果数据的变化,还有统计条数也跟着筛选条件变化。
关于ajax异步修改筛选条件 表单的办法:
layui通过ajax修改页面表单内容
本次记录主要是后端
$limit=$this->request->getPost('limit');
$offset=($this->request->getPost('page')-1)*$limit;
//上面两个参数是用来计算偏移量的
//下面参数是用来组合筛选条件的
$where['spreaders.user_id']=$this->request->getPost('user_id');
$where['sign']=$this->request->getPost('sign');
$where['origin']=$this->request->getPost('origin');
$where=array_filter($where);//过滤where数组,将重复值,空值,null元素删除
//筛选条件有可能为空,也有可能部分为空,所以需要将为空$where元素给清除掉
//接下来就是通过CI4的模型调用数据了
$spread=new SpreadersModel(); //实例化模型
$spread->select('spreaders.*,true_name'); //确定需要的字段
if(count($where)>0){$spread->where($where);} //如果存在筛选条件就使用查询构造器添加查询条件
$spreaddata=$spread->orderBy('spreaders.spread_id', 'desc')->findAll($limit, $offset);
//上面是获得符合条件的数据明细
//查询构造器一旦获取结果之后,就会被重置,下面是获取符合条件的数据条数
if(count($where)>0){$spread->where($where);}
$count=$spread->countAllResults(false);
//组装一个数组,使结果符合前端需求的规则
$spreaddata= array('code' => 0, 'msg' => '','count'=>$count,'data'=>$spreaddata);
之前想过通过查询到的数据明细数组的元素个数来确定有多少符合条件的数据个数,但是因为有limit的原因,符合条件的数据条数小于limit时是正确的,大于limit时就是limit的值,不准确;要是不限制数据偏移量,要是数据量大前端和后端压力都比较大。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992267/viewspace-2750197/ ,如需转载,请注明出处,否则将追究法律责任。