0:00
 
Window Title
 
 
 
 
 
 
 
 
壁紙の変更

コンピュータ

ネットワーク

ドキュメント

ごみ箱
マイコンピュータ
マイネットワーク
マイドキュメント
ごみ箱

オンラインゲーム

DHTML素材

perl module 忘備録

RFC翻訳

文字コード

 

コンピュータ

ネットワーク


コントロールパネル

perl module 忘備録

HTML::Pager

ページ分割されたHTMLページを生成する

use HTML::pager;
パッケージをロードする。

用意するテンプレート:
<html>

<body>
<TMPL_VAR NAME="PAGER_JAVASCRIPT">
<form>
<table>
<TMPL_LOOP NAME="PAGER_DATA_LIST">
  <tr>
   <td><TMPL_VAR NAME="COL0"></td>
   <td><TMPL_VAR NAME="COL1"></td>
   <td><TMPL_VAR NAME="COL2"></td>
  </tr>
</TMPL_LOOP>
</table><br>
<table><tr>
   <td width="33%"><TMPL_VAR NAME="PAGER_PREV"></td>
  <td width="33%"><TMPL_VAR NAME="PAGER_JUMP"></td>
  <td width="33%"><TMPL_VAR NAME="PAGER_NEXT"></td>
</tr> </table>
<TMPL_VAR NAME="PAGER_HIDDEN">
</form>
</body>
</html>

使い方:

my $cgi = new CGI;
# 実用的には、$offsetと$rowからデータベースを読む my $get_data_sub = sub { my ($offset, $rows) = @_; my @return_array; for (my $x = 0; $x < $rows; $x++) { my $key = $offset + $x; my %out; #データは、テンプレート中の<TMPL LOOP>ブロック内の<TMPL VAR>に出力する $out{'COL0'} = ''} = '###'; push(@return_array,\%out); } return \@return_array; }; my $tpl = new HTML::Template(filename => './test.tpl'); my $pager = new HTML::Pager(query => $cgi , template => $tpl,   get_data_callback => $get_data_sub, rows => 100, page_size => 10); print $cgi->header(-type => 'text/html',-charset => 'Shift-JIS'); print $pager->output;

newメソッドのパラメタ:
query:ブラウザとインタフェースするCGIオブジェクト
template:表示ページのテンプレートを保持するHTML::Templateオブジェクト
get_data_callback:行データを取得するサブルーチン
rows:トータル行
page_size:1ページあたりの行数

以下のパラメタはオプション---
javascript_presubmit:ページ変更をsubmitする前に呼び出すjava scriptを設定
debug:デバッグ情報を表示するとき1に設定

レディ