hello guys i have the following problem: i've set up my pagination with the help of codeigniter pagination class but i want to do something more:
I would like users to enter a value in an input box... and then the $per_page
to be set automaticaly at that value:
here is my code:
public function index($offset = NULL, $limit = NULL)
{
$this->load->library('pagination');
$offset = $this->uri->segment(3);
$total = $this->db->count_all('posts');
$per_page = 5;
$config['base_url'] = base_url().'welcome/index';
$config['total_rows'] = $total;
$config['uri_segment'] = 3;
$config['per_page'] = $per_page;
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
$data['posts'] = $this->Model_cats->get_pagination_field($config['per_page'], $offset);
and so on...
the pagination work great!
this is the html:
<div id="pagination">
<?php echo $pagination;?>
<input type="text" id="set_pagination">
<input type="submit" id="submit_pagination">
</div>
ok how can i submit a number let's say 3 and show me 3 posts per page?
Any idea? $per_page = $this->input->post
.... something..
First change your per_page as
$per_page = 3;
and to your model send $per_page including with offset as
$data['posts'] = $this->Model_cats->get_pagination_field($config['per_page'], $offset,$per_page);
and at your model write limit as
$this->db->limit($perpage,$offset);
thats it....hope it help for you
follow the steps.
1) save the text box value in DB.
2) In DB there will be a single row containing value of per_page. all time this value will be updated.
3) when you are using pagination class pick up that value from DB.
Hope this will work for you. any better idea than this is appreciated.
One way is to achieve this to post the value to the function,
<div id="pagination">
<?php echo form_open("controller/function"); ?>
<?php echo $pagination;?>
<input type="text" id="set_pagination" name="set_pagination">
<input type="submit" id="submit_pagination">
<?php echo form_close(); ?>
</div>
In your controller function, get the value.
$per_page = $this->input->post('set_pagination');
Then store the value in DB (or) Session.