xitas
xitas

Reputation: 1164

pagination submit get value codeigniter

I using GET method for searching records. now when i have applied pagination i can't understand how to submit data to next pagination page link. I have tried this answer. but it is just stacking page number in link segments.

example:

From localhost/phc/search/results/0?s=ai&product_cat=all&post_type=product

To localhost/phc/search/results/?s=ai&product_cat=all&post_type=product/12/24

so i didn't used that code.

And now my code is:

 public function results() {
        //pagination
        $offset = $this->uri->segment(3);
        $limit = 12;
        //$offset = 0;
        $data['limit'] = $limit;
        $config['base_url'] = base_url() . 'search/results/';
        $config['first_url'] = base_url() .'search/results/0';

        $data['total'] = $this->All_data_model->countSearchProducts($_GET);

        $config['total_rows'] = $data['total']; 
        $config['per_page'] = $limit;
        $config['uri_segment'] = 3;
        $config['next_link'] = 'Next';
        $config['prev_link'] = 'Previous';

        $this->pagination->initialize($config);
        $data['pagination'] = $this->pagination->create_links();
        $data['offset'] = $offset;
        $data['total_rows'] = $config['total_rows'];


        $data['page'] = 'search';
        $data['navbar'] = $this->All_data_model->navbarContent();

        $data['products'] = $this->All_data_model->searchResults($_GET , $offset , $limit);
        $this->template->write_view('content', 'products/search', $data);
        $this->template->render();
    }

Tell what the best way to submit data in this case if not GET and how can i access this data.

Upvotes: 0

Views: 451

Answers (1)

ourmandave
ourmandave

Reputation: 1585

Put offset in your url

 localhost/phc/search/results?s=ai&product_cat=all&post_type=product&offset=123

and set these configs.

$config['page_query_string'] = TRUE;
$config['query_string_segment'] = 'offset';
$config['reuse_query_string'] = TRUE;

I changed your code but it's not tested at all.

public function results() {

  //pagination

  $offset = $this->input->get('offset') ? $this->input->get('offset') : 0;

  $limit = 12;
  $data['limit'] = $limit;

  $config['base_url'] = base_url() . 'search/results/';

  $data['total'] = $this->All_data_model->countSearchProducts($_GET);

  $config['total_rows'] = $data['total']; 
  $config['per_page'] = $limit;

  // set these mostly...
  $config['page_query_string'] = TRUE;
  $config['query_string_segment'] = 'offset';
  $config['reuse_query_string'] = TRUE;

  $config['next_link'] = 'Next';
  $config['prev_link'] = 'Previous';

  $this->pagination->initialize($config);
  $data['pagination'] = $this->pagination->create_links();
  $data['offset'] = $offset;
  $data['total_rows'] = $config['total_rows'];


  $data['page'] = 'search';
  $data['navbar'] = $this->All_data_model->navbarContent();

  $data['products'] = $this->All_data_model->searchResults($_GET , $offset , $limit);

  $this->template->write_view('content', 'products/search', $data);
  $this->template->render();
  }

Upvotes: 1

Related Questions