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 Name Typ Erforderlich Standardwert Beschreibung values array Ja, ausser 'options'-Attribut wird verwendet. n/a Array mit Werten für die dropdown-Liste. output array Ja, ausser 'options'-Attribut wird verwendet. n/a Arrays mit Namen für die dropdown-Liste. selected string/array Nein empty Das ausgewählte Array Element. options associative array Ja, ausser wenn das 'values'- und das 'output'-Attribut verwendet werden. n/a Assoziatives 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_options Beispiel 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}