{html_options}関数 HTMLセレクト<select><option>タグを作成する
{html_options} は、HTML の <select><option> グループにデータを代入して作成するカスタム関数です。
デフォルトで選択されるアイテムも決定できます。
属性名 | 型 | 必須 | デフォルト | 概要 |
---|---|---|---|---|
values | array | Yes (options属性を用いない場合) | n/a | ドロップダウンリストのvalue属性の配列 |
output | array | Yes (options属性を用いない場合) | n/a | ドロップダウンリストの出力内容の配列 |
selected | string/array | No | empty | あらかじめ選択されているオプション要素 |
options | associative array 連想配列 | Yes (valuesとoutput属性を用いない場合) | n/a | キーがvalues属性、要素がoutput属性の連想配列 |
name | string | No | empty | selectグループの名前 |
name 属性が与えられると、 <select></select> タグが作成されます。
それ以外の場合は <option> のリストのみを作成します。
配列が渡された場合は HTML の <optgroup> として扱われ、グループが表示されます。
<optgroup> での再帰呼出もサポートしています。
すべての出力は XHTML に準拠しています。
上の属性リストに無いパラメータが与えられた場合は、作成された各 <select> タグの内側に名前/値のペアで表されます。
name 属性が与えられない場合には、これらは無視されます。
PHP
$smarty->assign('pref_options', array( 11 => '埼玉県', 12 => '千葉県', 13 => '東京都', 14 => '神奈川県') ); $smarty->assign('pref_id', 13);
テンプレート
{html_options name=id options=$pref_options selected=$pref_id}
name 属性が存在することで <select> タグが作成されることに注意しましょう。
出力
<select name="id"> <option label="埼玉県" value="11">埼玉県</option> <option label="千葉県" value="12">千葉県</option> <option label="東京都" value="13" selected="selected">東京都</option> <option label="神奈川県" value="14">神奈川県</option> </select>
PHP
$smarty->assign('pref_ids', array(11,12,13,14)); $smarty->assign('pref_names', array( '埼玉県', '千葉県', '東京都', '神奈川県') ); $smarty->assign('pref_id', 13);
テンプレート
<select name="id" size="{$pref_names|@count}"> {html_options values=$pref_ids output=$pref_names selected=$pref_id} </select>
PHP の count() 関数を修飾子として使用することで、 select の大きさを設定していることに注意しましょう。
出力
<select name="id" size="4"> <option label="埼玉県" value="11">埼玉県</option> <option label="千葉県" value="12">千葉県</option> <option label="東京都" value="13" selected="selected">東京都</option> <option label="神奈川県" value="14">神奈川県</option> </select>
PHP
$smarty->assign('pref_options', array( 11 => '埼玉県さいたま市浦和区高砂3丁目15番1号', 12 => '千葉県千葉市中央区市場町1番1号', 13 => '東京都新宿区西新宿二丁目8番1号', 14 => '神奈川県横浜市中区日本大通1番') ); $smarty->assign('pref_id', 13);
テンプレート
<select name="id" size="{$pref_names|@count}"> <option value='null'>-- none --</option> {html_options options=$pref_options|truncate:20 selected=$pref_id} </select>
truncate 修飾子の使用法に注意しましょう。
出力
<select name="id"> <option label="埼玉県さいたま市浦和" value="11">埼玉県さいたま市浦和</option> <option label="千葉県千葉市中央区市" value="12">千葉県千葉市中央区市</option> <option label="東京都新宿区西新宿二" value="13" selected="selected">東京都新宿区西新宿二</option> <option label="神奈川県横浜市中区日" value="14">神奈川県横浜市中区日</option> </select>
<optgroup> を使用したドロップダウン
PHP
$arr['tokai'] = array(22 => "愛知県", 24 => "三重県", 23 => "岐阜県", 19 => "静岡県"); $arr['hokuriku'] = array(17 => "石川県", 16 => "福井県", 18 => "富山県"); $smarty->assign('pref_options', $arr); $smarty->assign('pref_id', 24);
テンプレート
{html_options name=id options=$pref_options selected=$pref_id}
出力
<select name="id"> <optgroup label="tokai"> <option label="愛知県" value="22">愛知県</option> <option label="三重県" value="24" selected="selected">三重県</option> <option label="岐阜県" value="23">岐阜県</option> <option label="静岡県" value="19">静岡県</option> </optgroup> <optgroup label="hokuriku"> <option label="石川県" value="17">石川県</option> <option label="福井県" value="16">福井県</option> <option label="富山県" value="18">富山県</option> </optgroup> </select>
関連記事
- {math}関数 テンプレート内で数学の計算をする
- {textformat}関数 テキストを整形する
- {popup_init}関数 {popup}関数のためのライブラリを呼び出す
- {popup}関数 Javascript のポップアップウィンドウを作成する
- {mailto}関数 mailto: リンクの作成とメールアドレスのエンコードをする
- {html_table}関数 HTMLの<table>にデータの配列を出力する
- {html_select_time}関数 時間のドロップダウンリストを作成する
- {html_select_date}関数 日付のドロップダウンリストを作成する
- {html_radios}関数 HTMLラジオボタンを作成する
- {html_image}関数 HTML<img>タグを作成する
- {html_checkboxes}関数 HTMLチェックボックスを作成する
- {fetch}関数 ファイルを取得して表示する
- {eval}関数 変数をテンプレートとして扱う
- {debug}関数 デバック用の表示を出力する
- {cycle}関数 値の設定に従って循環する
- {counter}関数 カウントした回数を表示する
- {assign}関数 変数を テンプレートの実行時に割り当てる
スポンサーリンク