端くれプログラマの備忘録 PHP [PHP] Smartyで単純ループを使う

[PHP] Smartyで単純ループを使う

Smartyで単純ループさせるには以下のようにする。

{section name=year start=1901 loop=2015}
 {$smarty.section.year.index}
{/section}

これはPHPのforループで表現するなら以下と同等。

for ($year = 1901; $year < 2015; $year++) {
 echo $year;
}

以下に、ループを使って年月日のセレクトボックスをSmartyで定義した例を示す。

<select name="birth_year" >
 <option value="00" selected></option>
 {section name=year start=1901 loop=2015}
 <option value="{$smarty.section.year.index}">{$smarty.section.year.index}</a>
 {/section}
</select>年
<select name="birth_month" >
 <option value="00" selected></option>
 {section name=day start=1 loop=13}
 <option value="{$smarty.section.day.index}">{$smarty.section.day.index}</a>
 {/section}
</select>月
<select class="birth_day" >
 <option value="00" selected></option>
 {section name=day start=1 loop=32}
 <option value="{$smarty.section.day.index}">{$smarty.section.day.index}</a>
 {/section}
</select>日

select_00

参考サイト

{section},{sectionelse} | Smarty
http://www.smarty.net/docsv2/ja/language.function.section.tpl