Ci 搜索分页

5 篇文章 0 订阅

            《Page.php》

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');


class Page {

    public $pageNow    = 1;    //当前页

    public $pageCount    = 100;//数据总条数
    public $pageSize    = 3;//每页显示条数



    //获取分页
    public function getPage(){
        
        $total = ceil($this->pageCount/$this->pageSize);//总页数

        //页码起始数
        $start = $this->pageNow - 3;
        $start = $start < 1 ? 1 : $start;

        //页码结束数
        $end = $start + 4;
        $end = $end > $total ? $total : $end;

        //生成页码数
        $str = '';//页码
        for($i = $start; $i <= $end;$i++){
            if($this->pageNow == $i){
                $str .= '<span>'.$i.'</span> ';
            }else{
                $str .= '<a href="javascript:page('.$i.')">'.$i.'</a> ';
            }
            
        }
        
        // $str .= ' | '.'&nbsp;&nbsp;'.'总页数'.'&nbsp;&nbsp;'.$total;
        return $str;
    }

}

------------------------------------------------------------------------------------------  ↑ 封装分页类 ↑ ----------------------------------------------------------------------------------------------------------------------

          《controller.php》

public function getAjax()
    {
        $param = $this->input->get();

        //获取数据总条数
        $this->page->pageCount = $this->zufang->getfang($param,'',1);

        $p = 1;
        if(!empty($param['p']))
        {
            $p = $param['p'];
        }

        //当前页
        $this->page->pageNow = $p;

        //当前偏移量
        $limit[] = ($p-1)*$this->page->pageSize;

        //每页显示条数
        $limit[] = $this->page->pageSize;

        //获取数据
        $data['data'] = $this->zufang->getfang($param,$limit);

        $data['page'] = $this->page->getPage();

        exit(json_encode($data));
    }

------------------------------------------------------------------------------------------  ↑ 控制器↑ ----------------------------------------------------------------------------------------------------------------------

          《model.php》

    /**
     * 搜索        getfang($param)
     */
    public function getfang($param = array(),$limit = array(0,4),$count = false)
    {
        //过滤where条件
        if(!empty($param['title']))
        {
            $sql = ' (title like "%'. $param['title'].'%" )';
            $this->db->where($sql);
        }
        if(!empty($param['address']))
        {
            $sql = ' (address like "%'. $param['address'].'%" )';
            $this->db->where($sql);
        }
        if(!empty($param['house']))
        {
            $sql = ' (house like "%'. $param['house'].'%" )';
            $this->db->where($sql);
        }
        if(!empty($param['room']))
        {
            $sql = ' (room like "%'. $param['room'].'%" )';
            $this->db->where($sql);
        }
        if(!empty($param['price']))
        {
            $sql = ' (price like "%'. $param['price'].'%" )';
            $this->db->where($sql);
        }
        if(!empty($param['facilities']))
        {
            $sql = ' (facilities like "%'. $param['facilities'].'%" )';
            $this->db->where($sql);
        }
        if(!empty($param['contact']))
        {
            $sql = ' (contact like "%'. $param['contact'].'%" )';
            $this->db->where($sql);
        }

        //区间搜索
        if(!empty($param['start_price'])){
            $this->db->where('price >=',$param['start_price']);
        }
        if(!empty($param['end_price'])){
            $this->db->where('price <=', $param['end_price']);
        }

        //排除关键字
        if(!empty($param['unkeyword'])){
            $sql = ' (goods_name not like "%'. $param['unkeyword'].'%" AND goods_desc not like "%'.$param['unkeyword'].'%")';
            $this->db->where($sql);
        }

        // //查询字段
        $this->db->select();

        //查询表
        $this->db->from('zufang');

        // //查询返回资源
        // $query = $this->db->get();

        //查询总条数
        if($count)
        {
            return $this->db->count_all_results();
        }

        //limit查询  第二个参数返回的是 偏移量
        $this->db->limit($limit[1],$limit[0]);

        //查询返回资源
        $query = $this->db->get();

        //返回数组形式
        $data = $query->result_array();
        // var_dump($data);exit;

        return $data;
    }

------------------------------------------------------------------------------------------  ↑ 模型层↑ ----------------------------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于el-select的远程搜索分页功能,你可以通过以下步骤来实现: 1. 在el-select组件中添加一个远程搜索的方法,该方法需要接收一个参数query,表示搜索关键字,同时需要返回一个Promise对象,该对象需要返回一个包含搜索结果的数组。 2. 在el-select组件中添加一个分页方法,该方法需要接收两个参数:page和pageSize,分别表示当前页码和每页显示的条目数,同时需要返回一个Promise对象,该对象需要返回一个包含分页数据的数组。 3. 在el-select组件中添加一个选项属性:remote。如果remote属性为true,则表示启用远程搜索分页功能。 4. 在el-select组件中设置一个选项属性:remote-method。该属性需要绑定远程搜索分页方法。例如: ```html <el-select v-model="value" remote :remote-method="remoteMethod"></el-select> ``` 5. 在远程搜索分页方法中,根据传入的参数进行搜索分页,并返回符合条件的数据。例如: ```javascript remoteMethod(query) { return new Promise((resolve, reject) => { // 发送远程搜索请求,返回符合条件的数据 // resolve(data) }) }, paginate(page, pageSize) { return new Promise((resolve, reject) => { // 发送分页请求,返回当前页的数据 // resolve(data) }) } ``` 这样,当用户输入关键字时,el-select组件会自动调用远程搜索方法进行搜索,并显示符合条件的数据。当用户滚动到列表底部时,el-select组件会自动调用分页方法加载更多数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值