Data::Pageset

提供: dsk's note
2015年6月7日 (日) 03:18時点におけるDsk (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

@hogeには、なんらかのデータが入っているという前提で...

use CGI;
use Data::Pageset;
my $page = $obj->param('p');
$page ||= "1";
 
my @hoge;
 
my $total_entries=@hoge;
my $current_page=$page;
my $entries_per_page =15;
my $pages_per_set = 10;
 
my $page_info = Data::Pageset->new({
#全ての要素数
  'total_entries'    => $total_entries,
#1ページあたりの表示数
  'entries_per_page' => $entries_per_page,
#現在のページ
  'current_page'     => $current_page,
#1ページあたりのページング数
  'pages_per_set'    => $pages_per_set,
#ページングを表示ページ幅を固定するかスライドするか slide or fixed
  'mode'             => 'slide',
});
 
#前へ
if ($page_info->previous_page) {
  print "<a href='?p=" . $page_info->previous_page . "'>&lt;&lt;&nbsp;前へ</a>\n";
}
 
#ページ別リンク
foreach my $page (@{$page_info->pages_in_set()}) {
  if($page == $page_info->current_page()) {
    print "&nbsp;<strong>$page</strong>\n&nbsp;";
  } else {
    print "&nbsp;<a href='?p=" . $page . "'>$page</a>\n&nbsp;";
  }
}
 
#次へ
if ($page_info->next_page) {
  print "<a href='?p=" . $page_info->next_page . "'>次へ&nbsp;&gt;&gt;</a>\n";
}

Data::Pageset - search.cpan.org