0

大家好,我有以下问题:我已经在 codeigniter 分页类的帮助下设置了分页,但我想做更多的事情:

我希望用户在输入框中输入一个值...然后$per_page自动设置为该值:

这是我的代码:

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);

等等...

分页工作很棒!

这是html:

<div id="pagination">

    <?php  echo $pagination;?> 
    <input type="text" id="set_pagination">
    <input type="submit" id="submit_pagination">

</div>

好的,我如何提交一个数字,比如说 3,然后每页显示 3 个帖子

任何想法? $per_page = $this->input->post.... 某物..

4

3 回答 3

1

按照步骤。

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. 

希望这对你有用。任何比这更好的想法都值得赞赏。

于 2013-02-19T11:35:56.853 回答
1

一种方法是实现这一点,将值发布到函数中,

<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>

在您的控制器功能中,获取值。

$per_page = $this->input->post('set_pagination'); 

然后将值存储在 DB(或)Session 中。

于 2013-02-19T11:38:36.127 回答
0

首先将您的 per_page 更改为

$per_page = 3;

并向您的模型发送 $per_page 包括偏移量为

$data['posts'] = $this->Model_cats->get_pagination_field($config['per_page'], $offset,$per_page);

并在您的模型写入限制为

$this->db->limit($perpage,$offset);

就是这样......希望它对你有帮助

于 2013-02-19T11:32:58.090 回答