0
votes

I have url like this:

myproject/search?s=a

How to make pagination

Here my code in controller :

public function index()
    {
        $keyword = $this->input->get('s');
        $config['per_page']             = 2;
        $config['uri_segment']          = 2;
        $config['full_tag_open']        = '<nav class="pagination"><ul>';
        $config['full_tag_close']       = '</ul></nav>';
        $config['num_tag_open']         = '<li>';
        $config['num_tag_close']        = '</li>';
        $config['cur_tag_open']         = '<li class="active"><a href="'.site_url(uri_string()).'">';
        $config['cur_tag_close']        = '<span class="sr-only">(current)</span></a></li>';
        $config['prev_tag_open']        = '<li>';
        $config['prev_tag_close']       = '</li>';
        $config['next_tag_open']        = '<li>';
        $config['next_tag_close']       = '</li>';
        $config['first_link']           = '&laquo;';
        $config['prev_link']            = '&lsaquo;';
        $config['last_link']            = '&raquo;';
        $config['next_link']            = '&rsaquo;';
        $config['first_tag_open']       = '<li>';
        $config['first_tag_close']      = '</li>';
        $config['last_tag_open']        = '<li>';
        $config['last_tag_close']       = '</li>';
        $config['base_url']             = site_url('search');
        $config['total_rows']           = $this->m_home->count_search_produk($keyword);
        $this->pagination->initialize($config);
        $data['results']                = $this->m_home->search_produk($keyword, $config['per_page'], 0);
        $data['pagination']             = $this->pagination->create_links();        
        $data['total']                  = $this->m_home->count_search_produk($keyword);
        $this->theme->frontend('f_home/search', $data);
    }

in this line : $data['results'] = $this->m_home->search_produk($keyword, $config['per_page'], 0);

I set offset 0, I want to set dinamicly, using uri_segment, but not work, how to do that?

when I click pagination, the url like this:

myproject/search?s=a&page=3

1

1 Answers

1
votes

Its working very well

public function search()
    {
        $keyword = $this->input->get('s');
        $data['title']                  = 'Search Results';
        $config['per_page']         = 2;
        $config['uri_segment']          = 2;
        $config['full_tag_open']        = '<nav class="pagination"><ul>';
        $config['full_tag_close']       = '</ul></nav>';
        $config['num_tag_open']     = '<li>';
        $config['num_tag_close']        = '</li>';
        $config['cur_tag_open']     = '<li class="active"><a href="'.site_url(uri_string()).'">';
        $config['cur_tag_close']        = '<span class="sr-only">(current)</span></a></li>';
        $config['prev_tag_open']        = '<li>';
        $config['prev_tag_close']       = '</li>';
        $config['next_tag_open']        = '<li>';
        $config['next_tag_close']       = '</li>';
        $config['first_link']           = '&laquo;';
        $config['prev_link']            = '&lsaquo;';
        $config['last_link']            = '&raquo;';
        $config['next_link']            = '&rsaquo;';
        $config['first_tag_open']       = '<li>';
        $config['first_tag_close']      = '</li>';
        $config['last_tag_open']        = '<li>';
        $config['last_tag_close']       = '</li>';
        $config['page_query_string']    = TRUE;
        $config['query_string_segment']= 'page';
        $config['base_url']         = site_url('search?s='.$keyword);
        $config['total_rows']           = $this->m_home->count_search_produk($keyword);
        $this->pagination->initialize($config);
        $page = (empty($_GET['page'])) ? 0 : $_GET['page'];
        $data['results']                = $this->m_home->search_produk($keyword, $config['per_page'], $page);
        $data['pagination']         = $this->pagination->create_links();
        $data['total']                  = $this->m_home->count_search_produk($keyword);
        $this->theme->frontend('f_home/search', $data);
    }