×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
~お前もこの 気持ちよさにやられちまいな~
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smartyで簡単に年月日のセレクトボックスを使用する方法
年月日のセレクトボックスは結構頻繁に使用ます。 が、テンプレート化して、毎回それを使用するほどは使用頻度が高くなくめんどくさくはない。 でも毎回1からコードを書くのは非常にめんどいです。 そんな時smartyのカスタム関数html_select_dateを使うと一発です。 うん。こんな便利な関数があるなんて知らなかった。やっぱりマニュアルは一度は目を通すべきですね。 本日の説明はマニュアルを読んでしまえば、全部載ってる事ですがお気になさらずに。
ではでは・・・ html_select_dateには属性が複数あります。 ここでは実務に必要かと思われるものだけを載せます。 詳しくはマニュアル参照ってことで。
以降は入出力例を幾つか紹介します 例1tpl<!--実行日が2009/01/20の場合-->
{html_select_date} 出力html <!--実行日が2009/01/20の場合-->
<select name="Date_Month"> <option label="1月" value="01" selected="selected">1月</option> ・
・ ・ <option label="12月" value="12">12月</option>
</select>
<select name="Date_Day"> <option label="01" value="1">01</option> <option label="02" value="2">02</option> ・
・ ・ <option label="19" value="19">19</option>
<option label="20" value="20" selected="selected">20</option> <option label="21" value="21">21</option> ・
・ ・ <option label="30" value="30">30</option>
<option label="31" value="31">31</option> </select> <select name="Date_Year"> <option label="2009" value="2009" selected="selected">2009</option> </select> 何も指定しない場合。 年のリストが実行した年しかないので使い物になりませんね。 例2tpl<!--実行日が2009/01/20の場合-->
{html_select_date prefix="Foo" time="2010-03-10"} 出力html <!--実行日が2009/01/20の場合-->
<select name="FooMonth"> <option label="1月" value="01">1月</option> <option label="2月" value="02">2月</option> <option label="3月" value="03" selected="selected">3月</option> <option label="4月" value="04">4月</option> ・
・ ・ <option label="11月" value="11">11月</option>
<option label="12月" value="12">12月</option> </select> <select name="FooDay"> <option label="01" value="1">01</option> <option label="02" value="2">02</option> ・
・ ・ <option label="09" value="9">09</option>
<option label="10" value="10" selected="selected">10</option> <option label="11" value="11">11</option> ・
・ ・ <option label="30" value="30">30</option>
<option label="31" value="31">31</option> </select> <select name="FooYear"> <option label="2009" value="2009">2009</option> <option label="2010" value="2010">2010</option> ・
・ ・ <option label="2014" value="2014">2014</option>
<option label="2015" value="2015" selected="selected">2015</option> </select> 各<select>タグのname属性の接頭語がFooになった。 timeで現在年以後を指定すると、end_yearの指定がなくてもtime指定年数までリストが生成されるようだ。 例3tpl<!--実行日が2009/01/20の場合-->
{html_select_date time="2001-12-31" display_days=false} 出力html <!--実行日が2009/01/20の場合-->
<select name="Date_Month"> <option label="1月" value="01">1月</option> <option label="2月" value="02">2月</option> ・
・ ・ <option label="11月" value="11">11月</option>
<option label="12月" value="12" selected="selected">12月</option> </select> <select name="Date_Year"> <option label="2001" value="2001" selected="selected">2001</option> <option label="2002" value="2002">2002</option> ・
・ ・ <option label="2008" value="2008">2008</option>
<option label="2009" value="2009">2009</option> </select> display_days=falseでfalseを指定したことで月のセレクトボックスは表示されない。 boll型の値は"や'で囲ってしまうと効かなくなるので注意すること。 例4tpl<!--実行日が2009/01/20の場合-->
{html_select_date start_year="1999" end_year="+5" year_empty="年を編集してください" year_extra='id="foo"'} 出力html <!--実行日が2009/01/20の場合-->
<select name="Date_Month"> <option label="1月" value="01" selected="selected">1月</option> <option label="2月" value="02">2月</option> ・
・ ・ <option label="11月" value="11">11月</option>
<option label="12月" value="12">12月</option>
</select> <select name="Date_Day"> <option label="01" value="1">01</option> <option label="02" value="2">02</option> <option label="03" value="3">03</option> <option label="04" value="4">04</option> <option label="05" value="5">05</option> <option label="06" value="6">06</option> <option label="07" value="7">07</option> <option label="08" value="8">08</option> <option label="09" value="9">09</option> <option label="10" value="10">10</option> <option label="11" value="11">11</option> <option label="12" value="12">12</option> <option label="13" value="13">13</option> <option label="14" value="14">14</option> <option label="15" value="15">15</option> <option label="16" value="16">16</option> <option label="17" value="17">17</option> <option label="18" value="18">18</option> <option label="19" value="19">19</option> <option label="20" value="20" selected="selected">20</option> <option label="21" value="21">21</option> <option label="22" value="22">22</option> <option label="23" value="23">23</option> <option label="24" value="24">24</option> <option label="25" value="25">25</option> <option label="26" value="26">26</option> <option label="27" value="27">27</option> <option label="28" value="28">28</option> <option label="29" value="29">29</option> <option label="30" value="30">30</option> <option label="31" value="31">31</option> </select> <select name="Date_Year" id="foo"> <option label="年を編集してください" value="">年を編集してください</option> <option label="1999" value="1999">1999</option> <option label="2000" value="2000">2000</option> ・
・ ・ <option label="2008" value="2008">2008</option>
<option label="2009" value="2009" selected="selected">2009</option> <option label="2010" value="2010">2010</option> ・
・ ・ <option label="2013" value="2013">2013</option>
<option label="2014" value="2014">2014</option> </select> start_year、end_yearの指定によって1999から2009+5=2014までのリストが作成されている year_emptyの指定によって <option label="年を編集してください" value="">年を編集してください</option>
が作成されたが、timeの指定がなくても、2009にselectedが入ってしまい、year_emptyによって生成された値にselectedを入れる方法はわからなかった。year_extraの指定により、年のセレクトボックスにidがセットされている。 year_extraの指定は year_extra='id="foo"'
なりyear_extra="id='foo'"
にすること。しかし結局、~_emptyにselectedを着けることができなかった・・・ seletedつけなかったら意味あるんだろうか? ちなみにボクはこれでフォームを作ったら、CSSデザイナーに 「わけわかんねーhtml吐くコード使うんじゃねーよヴぉけ! なんだ『selected="selected"』って! デザインの自由度下がるから変なことせずに大人しくsectionとifでコード書け間抜け!! これだからどうt(ry」 (意訳) って言われて結局いつも通りsectionやらなにやら使って書いてます。 まぁマニュアル読めばわかること+幾つかの例だけなんだけど。 この記事に2時間もかかってしまった・・・あんまり意味ないだろ・・・常識的に考えて・・・ PR コメントを投稿する
この記事のトラックバックURL: <<どうなんだろう・・・? - FireFoxのメモリ開放ツール「MetaboFix」 | ブログトップ | シナリオは評価せざるを得ない - みなみけ おかえり2話>> | カレンダー
最新記事
(04/08)
(04/01)
(12/29)
(06/23)
(06/23) ブログ内検索
プロフィール
中の人:
⑨
お仕事:
見習いプログラマー
趣味:
ネット、アニメ、音楽、チャリ
一言:
エロゲからクラブミュージックまで。
おじさんの趣味は108式まであるゆぉ~(・3・) |