在codeigniter中输入类型文本的SET $ per_page

时间:2013-02-19 11:27:14

标签: php html codeigniter

大家好我有以下问题:我已经在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 ....某事......

3 个答案:

答案 0 :(得分: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. 

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

答案 1 :(得分: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。

答案 2 :(得分: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);

多数民众赞成......希望对你有所帮助