html_options

ÊôÐÔÃû³ÆTypeRequiredDefaultDescription
valuesarrayYes, unless using options attributen/aan array of values for dropdown
outputarrayYes, unless using options attributen/aan array of output for dropdown
selectedstring/arrayNoemptythe selected option element(s)
optionsassociative arrayYes, unless using values and outputn/aan associative array of values and output
namestringNoemptyname of select group

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.

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.

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.

Example 8-8. html_options

index.php:

require('Smarty.php.class');
$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.php.class');
$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>


OUTPUT: (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>