2012-02-21 9 views
2

私はcodeigniterページネーションライブラリを使用して検索結果を表示しています。私は結果を生成するために限界とオフセットを使用しています。codeigniterページネーションライブラリでページ番号をエコーする方法は?

ページネーションリンクとは別に、ユーザーが現在表示しているページの番号をエコーする方法を知りたいと思います。

たとえば、

現在、Yの検索結果からXページを表示しています。

これはどのように可能ですか?

答えて

3

ページネーションクラスを拡張することができます(システム/ライブラリ/ Pagination.php)。

あなたの拡張ページネーションクラスにこのコードを追加/ MY_Pagination.phpというファイルを作成し、アプリケーション/ライブラリにそれを置きます。

class MY_Pagination extends CI_Pagination { 

    public function __construct() { 
     parent::__construct(); 
    } 

    public function current_place() { 
     return 'You are currently viewing page '.$this->cur_page.' out of '.ceil(($this->total_rows/$this->per_page)). 'results'; 
    } 
} 

は、クラス拡張プレフィックスが

は、次に、あなたのようなあなたのコントローラにアクセスすることができます(ライン109程度)config.phpのMY_に正しく設定されていることを確認することを忘れないでください ;

$current = $this->pagination->current_place(); 

あなたはあなたの視野に入ることができます。

+0

はlibraries..youだけ彼らに – Henesnarfel

+0

@Henesnarfelを拡張する必要がありますコアをハックされることはありません何の

$currentPage = floor(($this->uri->segment(n)/$config['per_page']) + 1); 

を与えません'ハック'コメント。今すぐネイティブライブラリを拡張することでそれを示して、 – Rooneyl

0

オフセットの設定方法によって異なります。私たちはperpageのオフセットを設定しています。したがって、デフォルトは1ページあたり10です。したがって、ページ1のオフセットは0です。ページ2のオフセットは10であり、以下同様です。現在のページを取得するには、オフセットを現在の制限+ 1で割って計算します。したがって、($cur_page/$per_page)+1は現在のページを取得します。削除する答えを変更しました -

+0

詳細を精巧にしますか?私は '($ cur_page/$ per_page)+ 1'を試しましたが、動作しませんので、 – deathlock

3

また、これは、現在のページに、nはセグメント

echo "Current Page:".$currentPage; 
+0

これはありがとうございます。 – user1149244

+0

メッセージ:定義されていない定数nの使用 - 想定された 'n':/ – deathlock

+0

hello @ 'n'の代わりに@deathlockセグメントnoを渡す必要があります。 'n'をセグメントに置き換えます。 –