Nome Attributo | Tipo | Obbligatorio | Default | Descrizione |
---|---|---|---|---|
values | array | sì, a meno che si usi l'attributo options | nessuno | array di valori per il menù a discesa |
output | array | sì, a meno che si usi l'attributo options | nessuno | array di output per il menù a discesa |
selected | stringa/array | no | vuoto | l'elemento/gli elementi selezionato/i |
options | array associativo | sì, a meno che si usino values e output | nessuno | array associativo di valori e output |
name | stringa | no | vuoto | nome del gruppo select |
html_options è una funzione utente che usa i dati forniti per creare un gruppo di opzioni, cioè di valori option per un menù a discesa (casella select). Si occupa anche di quale o quali valori devono essere preselezionati. Gli attributi obbligatori sono values e output, a meno che non usiate invece options.
Se uno dei valori forniti è un array, verrà trattato come un gruppo di opzioni (OPTGROUP), e visualizzato di conseguenza. E' possibile creare gruppi ricorsivi (a più livelli). Tutto l'output generato è compatibile XHTML.
Se viene fornito l'attributo opzionale name, la lista di opzioni verrà racchiusa con il tag <select name="groupname"></select>. In caso contrario verrà generata solo la lista di opzioni.
Tutti i parametri non compresi nella lista qui sopra verranno stampati come coppie nome/valore nel tag <select>. Saranno ignorati se l'attributo name non è presente.
Example 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> OUTPUT: (per entrambi gli esempi) <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>