2

私の改ページの問題はまだ続いています;

私は単純なものでページネーションをしているだけです:

        $config['base_url'] = site_url('admin/index/page/');
        $this->load->database();
        $config['total_rows'] = $this->db->count_all('sms');
        $config['per_page'] = 20;
        $offset = $this->uri->segment(4, 0);
        $this->pagination->initialize($config)

そして、私のビューページにはビューページネーションのためのこのコマンドがあります:

        <?php echo $this->pagination->create_links(); ?> 

そして、20行を超えると、ページングによってリストのページングが開始されますが、HTML出力は次のように表示されます。

 1  2  3 

ビューのように、最初のページ番号1には、次のページにジャンプするリンクもありません。ページ番号1にはリンクがありません。

2番目の問題は次のとおりです。30レコードしかありませんが、CIページ付けにより3ページ目が作成され、空の行が表示されます。

なぜいくつかのクラス(特にページネーションはユーザーに非常に多くの問題を引き起こすのですか?)問題を検索するために多くの時間を失うことなく単純なページネーションクラスを使用する代わりに、トラブルから逃れるために何か(おそらく隠されたライセンス?)を支払う必要がある場合インターネット、私はそれの準備ができています!

4

4 に答える 4

12

私はこのページネーションの問題のために非常に怒っていました、そして私はページネーションライブラリのソースコードを研究していました、そして私はこれを見ました--var $ uri_segment = 3; ページネーションライブラリのデフォルトでは、3番目のURIセグメントが使用されます。あなたの場合、私の場合は4番目のURIセグメントを使用したいと思います。ニーズに合わせて、次のコードを変更してください。

    $config['base_url'] = site_url('admin/index/page/');
    $this->load->database();
    $config['total_rows'] = $this->db->count_all('sms');
    $config['per_page'] = 20;
    $offset = $this->uri->segment(4, 0);
    $this->pagination->initialize($config)


   TO


    $config['base_url'] = site_url('admin/index/page/');
    $this->load->database();
    $config['total_rows'] = $this->db->count_all('sms');
    $config['per_page'] = 20;
    $offset = $this->uri->segment(4, 0);

    $config['uri_segment'] = 4;      // add this line to override the default

    $this->pagination->initialize($config)

これで問題が解決する場合、または問題がまだ存在する場合は、ここに投稿してください。サポートさせていただきます:)

Nweiこれはページネーションクラスのドキュメントにはありません。多くの開発者がページネーションクラスで苦労しているのを見ているので、これがドキュメントに追加されることを願っています。

于 2012-07-29T02:24:11.390 に答える
1

ページ付けの仕組みに精通している場合は、ページ付けによって現在のページにリンクタグが追加されないことに注意してください。したがって、「ページ付けクラスは1ページのリンクを作成しない」に関してあなたが何を求めているのかわかりません。

また、ページネーション機能内でオフセットが使用されている場所がわかりません。設定したようですが、使用していません。これにより、誤ったページ付け結果が発生する可能性があります。これが、予想よりも多くのページ付けリンクを取得する理由であると思います。

    $offset = $this->uri->segment(4, 0);
    $this->pagination->initialize($config);

「現在のページ」リンクのマークアップを変更する1つの方法は、「「現在のページ」リンクのカスタマイズ」です。

$config['cur_tag_open'] = '<a href="#">';

「現在の」リンクの開始タグ。

$config['cur_tag_close'] = '</a>';

「現在の」リンクの終了タグ。

もう1つのオプションは、ページネーションクラスに飛び込んで、現在のページにリンクを追加しないための機能を削除することです。

実際、現在のページを表示している場合、現在のページにリンクがない理由であると私が推測しているのと同じページにリンクしても、何のメリットもありません。2ページに移動すると、2は無効になります。それが理にかなっていることを願っています。

于 2012-06-01T21:03:55.447 に答える
0

セグメント番号4を使用した場合も、ページネーションで同じ問題が発生していました。セグメント番号3を使用して解決しました。これも、セグメント番号4を使用する必要があるため、問題です。しかし、バグがあります。これができるだけ早く解決できることを願っています。または、本当にこの問題を修正する必要がある場合は、ページ付けクラスのソースコードをフォークすることができます。

于 2012-07-28T23:50:58.620 に答える
0

いいえ、何も支払う必要はありません...CIページネーションは完全に機能します..このライブラリを参照してくださいhttp://codeigniter.com/user_guide/libraries/pagination.html

$config['total_rows'] = $this->db->count_all('sms');このコードが正しく機能し、正しい行数を提供していることを確認してください 。$config['uri_segment'] = 3;また、使用するの$config['uri_segment'] = 4; depend on your uriではなく、使用 することをお勧めします。$offset = $this->uri->segment(4, 0);

うまくいけば、これらのいくつかの変更はあなたのために働くでしょう....

于 2012-06-01T17:04:33.453 に答える