【问题标题】:Filter data while using pagination Codeigniter使用分页 Codeigniter 时过滤数据
【发布时间】:2016-02-16 15:44:13
【问题描述】:

我是 Codeigniter 的新手,我正在尝试找出一种使用分页并过滤一些数据的方法。我有分页设置来显示表格中的所有记录。我希望能够使用表中的特定列过滤这些记录。该列是int。我的控制器是clients,方法是index,所以转到http://localhost/clients 将在表格中生成一个客户列表。当我转到另一个页面以显示更多结果时,URL 会根据我所在的页面更改为http://localhost/clients/50。现在,我的控制器方法有一个参数是$client_status,它又是int。由于 CI 使用 URL 的第二段进行分页,我如何传递参数以按客户端状态进行过滤?下面是代码的样子:

    public function index($client_status = false) {
       if(!$client_status) {
          $data['clients'] = $this->clients_model->list_clients($config["per_page"], $page);
       } else {
          $data['clients'] = $this->clients_model->list_clients($config["per_page"], $page, $client_status);
       }

还有我的模特:

public function list_clients($limit, $start, $client_status = false) {

        if(!$client_status) {

            $this->db->limit($limit, $start);
            $this->db->select('*');
            $this->db->from('clients');
            $this->db->join('client_status', 'clients.client_status_id = client_status.client_status_id');
            $query = $this->db->get();

            if($query->num_rows() > 0) {

                return $query->result();

            } else {

                return false;

            }


        } else {

            $this->db->limit($limit, $start);
            $this->db->select('*');
            $this->db->from('clients');
            $this->db->join('client_status', 'clients.client_status_id = client_status.client_status_id');
            $this->db->where(array('clients.client_status_id' => $client_status));
            $query = $this->db->get();

            if($query->num_rows() > 0) {

                return $query->result();

            } else {

                return false;

            }

        }


    }

【问题讨论】:

    标签: php mysql codeigniter pagination


    【解决方案1】:

    为此,您必须将参数传递到查询字符串中。在分页类的配置中,确保设置以下参数

    $config = array(
      'page_query_string'       => TRUE,
      'query_string_segment'    => 'page', // the query string param for the page numbers
      'reuse_query_string'      => TRUE,
    )
    

    通过配置,您的 URL 将类似于

    http://example.com/clients?param=value&page=2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多