Smartyのforeach
これもいつも書き方忘れるので、書いとく!
Smartyでテンプレート側でforeachを回す時の書き方
{foreach from=【配列】 key=【キーを格納する変数】 item=【要素を格納する変数】} 繰り返したい処理 {/foreach}
例えばRSSリーダーのような、何かの一覧表示を作りたい時や
プルダウンメニューの項目がやけに多い時、
ひとつずつ書いていてはとっても大変。
そんなときはロジック側で下準備をして
テンプレート側でforeachを回せば楽ちんなのさ!
試しにプルダウンメニューで今が何月なのかを選べるのを書いてみる
まずロジックファイル。名前はsample.php
<?php require_once('../../../libs/Smarty.class.php'); $smarty = new Smarty(); $months[0] = 1; $months[1] = 2; $months[2] = 3; $months[3] = 4; $months[4] = 5; $months[5] = 6; $months[6] = 7; $months[7] = 8; $months[8] = 9; $months[9] = 10; $months[10] = 11; $months[11] = 12; $smarty->assign('months',$months); $smarty->display('sample.html');
次にテンプレートファイル。名前はsample.html
<select name='month'> {foreach from=$months item=month key=num} <option value='{$num}'>{$month}</option>月 {/foreach} </select>
これでプルダウンメニューに1〜12が表示されて月が選べるようになったはず!
余談。
forとかforeachとかが初めて動いた時、
なんかよくわかんないけどすごいデキる人になった気分になった。
本当に気分だけなんだけどねっ!!!!ぷぎゃ!