これは1月から12月を出すときのソース
<select name="month"> {section name=day start=1 loop=12 step=1} <option value="{$smarty.section.day.iteration}"> {$smarty.section.day.iteration} </option> {/section} </select>
結果は
<select name="month"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> ・ ・ ・ ・ <option value="12">12</option> </select>
こんな感じ
ループ文でぐるぐるまわしつつ書けることは書けるんですが
実は日付に関しては(時間もありそうですよ!)
「html_select_date」つー便利なものが用意されてました。
例えば
{html_select_date}
ってテンプレートに書くだけで年月日全部出るんですよー!
<select name="Date_Month"> <option value="1">January</option> <option value="2">February</option> ・ ・ ・ <option value="11">November</option> <option value="12" selected>December</option> </select> <select name="Date_Day"> <option value="1">01</option> <option value="2" selected>02</option> ・ ・ ・ <option value="29">29</option> <option value="30">30</option> <option value="31"<31</option> </select> <select name="Date_Year"> <option value="2007" selected>2007</option> </select>
出力結果が上記のようにでまっせ。ってことで。
しかも便利なのが、いつもはアサインした値を比較してselectedを吐き出すように
してたんですけど、これってもう当日の状態が選択されるようになってるっぽい。
いつもやってたのを考えるとチョットぐったり。
しかもしかも!
日付を選択しない状態ってのもちゃんと設定できるようになってた!
{html_select_date year_empty="----" day_empty="--" month_empty="--"}
って書いてあげれば一番上のリストに
年のセレクトのところには
<option value="">----</option>
月日のところは
<option value="">--</option>
ってのが吐き出されました。
このメソッドすっごい使いやすかったりして。
色々パラメーターはあるみたいなので、じっくり読んでみるといいかもですね。↓↓
//Smarty マニュアル html_select_date
http://sky.freespace.jp/smarty/SmartyManual_2-6-5J_html/language.function.html.select.date.html
お祝いです
http://smarty.php.net/manual/ja/
宣伝気味ですがどんぞ つ http://www.phppro.jp/phptips/archives/vol23/#1
これは知らなかった