html_options (Ausgabe von HTML-Options)
{html_options} wird verwendet um HTML-Options Listen mit den
übergebenen Daten zu erzeugen. Die Funktion kümmert sich
ebenfalls um das setzen des ausgewählten Standardwertes. Die
Attribute 'values' und 'output' sind erforderlich, ausser man
verwendet das Attribut 'options'.
Attribut NameTypErforderlichStandardwertBeschreibungvaluesarrayJa, ausser 'options'-Attribut wird verwendet.n/aArray mit Werten für die dropdown-Liste.outputarrayJa, ausser 'options'-Attribut wird verwendet.n/aArrays mit Namen für die dropdown-Liste.selectedstringNeinemptyDas ausgewählte Array Element.optionsassociative arrayJa, ausser wenn das 'values'- und das 'output'-Attribut verwendet werden.n/aAssoziatives Array mit Werten die ausgegeben werden sollen.
Wenn ein Wert als Array erkannt wird, wird er als HTML-OPTGROUP
ausgegeben und die Werte werden in Gruppen dargestellt. Rekursion
wird unterstützt. Die Ausgabe ist XHTML kompatibel.
Wenn das (optionale) Attribute name angegeben
wurde, wird um die <option>-Liste von <select
name="groupname"></select>-Tags umschlossen
Alle Parameter die deren Namen nicht in der obigen Liste genannt
wurde, werden dem <select>-Tag als Name/Wert-Paare
hinzugefügt. Die Parameter werden ignoriert, wenn kein
name-Attribute angegeben wurde.
html_optionsBeispiel 1:
assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array(
'Joe Schmoe',
'Jack Smith',
'Jane Johnson',
'Charlie Brown'));
$smarty->assign('customer_id', 1001);
?>
]]>
Wobei das Template wie folgt aussieht:
{html_options values=$cust_ids output=$cust_names selected=$customer_id}
]]>
Beispiel 2:
assign('cust_options', array(
1000 => 'Joe Schmoe',
1001 => 'Jack Smith',
1002 => 'Jane Johnson',
1003 => 'Charlie Brown')
);
$smarty->assign('customer_id', 1001);
?>
]]>
Wobei das Template wie folgt aussieht:
Beide Beispiele ergeben folgende Ausgabe:
]]>
Siehe auch {html_checkboxes}
und {html_radios}
{html_options} - Beispiel mit Datenbank (z.B. PEAR oder ADODB):
assign('types',$db->getAssoc($sql));
$sql = 'select contact_id, name, email, type_id
from contacts where contact_id='.$contact_id;
$smarty->assign('contact',$db->getRow($sql));
?>
]]>
Wobei das Template wie folgt aussieht:
{html_options name="type" options=$types selected=$contact.type_id}
]]>
Siehe auch {html_checkboxes}
und {html_radios}