MW211 EXIT

devlog
Smarty/プルダウンメニュー
2011年09月09日
Smartyでプルダウンメニューを作成する例。

テンプレート側で以下のような感じで定義しておく。
┌──────────────────────────────────────┐
│<select name="pulldown">                                                    │
│<option value="">&nbsp;</option>                                            │
│{foreach from=$choices key=key item=value}                                  │
│<option value="{$key|escape}"
  {if $key == $default} selected="selected"{/if}>{$value|escape}</option>     │
│{/foreach}                                                                  │
│</select>                                                                   │
└──────────────────────────────────────┘

選択肢を以下のような連想配列として、Smartyにassignする。
┌──────────────────────────────────────┐
│$choices = array(                                                           │
│  1 => '北海道',                                                            │
│  2 => '青森県',                                                            │
│  3 => '岩手県'                                                             │
│);                                                                          │
└──────────────────────────────────────┘

初期表示値をSmartyにassignする。
#選択して(更新などを経て)再表示された場合などを想定
┌──────────────────────────────────────┐
│$default = 2;                                                               │
└──────────────────────────────────────┘

すると以下のようなイメージのプルダウンメニューが作成される。
┌──────────────────────────────────────┐
│          ┌───┐                                                        │
│          │      │→値は''                                                │
│          │北海道│→値は'1'                                               │
│初期表示→│青森県│→値は'2'                                               │
│          │岩手県│→値は'3'                                               │
│          └───┘                                                        │
└──────────────────────────────────────┘

ソースコードは以下のようになっている。
┌──────────────────────────────────────┐
│<select name="pulldown">                                                    │
│<option value="">&nbsp;</option>                                            │
│<option value="1">北海道</option>                                           │
│<option value="2" selected="selected">青森県</option>                       │
│<option value="3">岩手県</option>                                           │
│</select>                                                                   │
└──────────────────────────────────────┘
分類:Smarty