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つの方法は、これを実現して値を関数に送信することです。

<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(または)セッションに保存します。

于 2013-02-19T11:38:36.127 に答える
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 に答える
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 に答える