html_options

Attribute Name Type Required Default Description
values array Yes, unless using options attribute n/a an array of values for dropdown
output array Yes, unless using options attribute n/a an array of output for dropdown
selected string/array No empty the selected option element(s)
options associative array Yes, unless using values and output n/a an associative array of values and output
name string No empty name of select group

属性 类型 是否必须 缺省值 描述
values array Yes, unless using options attribute n/a 包含下拉列表各元素值的数组
output array Yes, unless using options attribute n/a 包含下拉列表各元素显示值的数组
selected string/array No empty 已选定的元素或元素数组
options associative array Yes, unless using values and output n/a 包含值和显示的关联数组
name string No empty 下拉菜单的名称

html_options is a custom function that creates html option group with provided data. It takes care of which item(s) are selected by default as well. Required attributes are values and output, unless you use options instead.

自定义函数 html_options 根据给定的数据创建选项组. 该函数可以指定哪些元素被选定. 要么必须指定 values 和 ouput 属性,要么指定 options 替代.

If a given value is an array, it will treat it as an html OPTGROUP, and display the groups. Recursion is supported with OPTGROUP. All output is XHTML compatible.

如果给定值是数组,将作为 OPTGROUP 处理,且支持递归. 所有的输出与 XHTML 兼容.

If the optional name attribute is given, the <select name="groupname"></select> tags will enclose the option list. Otherwise only the option list is generated.

如果指定了可选属性 name,该选项列表将将被置于<select name="groupname"></select>标签对中. 如果没有指定,那么只产生选项列表.

All parameters that are not in the list above are printed as name/value-pairs inside the <select>-tag. They are ignored if the optional name is not given.

上表未提到的其它参数在 <select> 标签中以"名称/属性"对的方式显示. 如果没有指定可选属性 name 这些参数将被忽略.

Example 8-8. html_options
Smarty手册范例 8-8. html_options 函数演示

index.php:

require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
Johnson','Carlie Brown'));
$smarty->assign('customer_id', 1001);
$smarty->display('index.tpl');

index.tpl:

<select name=customer_id>
	{html_options values=$cust_ids selected=$customer_id output=$cust_names}
</select>


index.php:

require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('cust_options', array(
			1001 => 'Joe Schmoe',
			1002 => 'Jack Smith',
			1003 => 'Jane Johnson',
			1004 => 'Charlie Brown'));
$smarty->assign('customer_id', 1001);
$smarty->display('index.tpl');

index.tpl:

<select name=customer_id>
	{html_options options=$cust_options selected=$customer_id}
</select>


输出结果: (both examples)

<select name=customer_id>
	<option value="1000">Joe Schmoe</option>
	<option value="1001" selected="selected">Jack Smith</option>
	<option value="1002">Jane Johnson</option>
	<option value="1003">Charlie Brown</option>
</select>