- ベストアンサー
HTML::TemplateのTMPL_LOOPについて
- HTML::TemplateのTMPL_LOOPを利用して多重ループをする方法を教えてください。
- 配列を利用する場合にはどのように記述すれば良いでしょうか。
- ドキュメントには値それぞれを記述する方法が載っていますが、配列を利用する際の記述がわかりません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
中盤の意味を掴みかねましたが、とにかく上記のテンプレートへ出力出来る構造体を考えてみます。 $template->param( LOOPA => [ { # ここから title =>"TITLE1", LOOP_GUEST => [ {guest_name => "NAME1"}, {guest_name => "NAME2"} ], time => "TIME1" }, # ここまでがLOOPAの一つの要素 { # ここからは二つ目 title =>"TITLE2", # LOOPA内のTMPL_VAR titleで取り出せるtitle LOOP_GUEST => [ # ここからLOOPA内のLOOP_GUESTの要素 {guest_name => "NAME1"}, # LOOP_GUESTの要素の一つ {guest_name => "NAME2"} # TMPL_VAR guest_nameで取り出せるguest_nameをセットしている ], # ここまでがLOOP_GUEST time => "TIME2" } ] ); なんとなく、わかったでしょうか? 要するに、TMPL_LOOPの部分はハッシュリファレンスの配列のリファレンスがセットされている必要があって、ループ内で配列の中身が一つ一つ展開され、その中で利用出来るテンプレート変数がハッシュリファレンスの内容のハッシュになっている、と。多重ループであっても、同じことの繰り返しです。 参考までに、ドキュメントの構造体を出力するテンプレートは <TMPL_LOOP NAME=LOOP> <TMPL_VAR NAME=name> <TMPL_LOOP NAME=nicknames> <TMPL_VAR NAME=name> </TMPL_LOOP> </TMPL_LOOP> とかになると思います。 まぁともかく、いろいろ実験して体得してみてください。