{html_options} {html_options} est une fonction personnalisée qui crée un groupe d'options avec les données fournies. Elle prend en charge les éléments sélectionnés par défaut. Les attributs requis sont values et output, à moins que vous n'utilisiez options à la place. Nom attribut Type Requis Defaut Description values array Oui, à moins que vous n'utilisiez l'attribut options n/a un tableau de valeurs pour les listes déroulantes output array Oui, à moins que vous n'utilisiez l'attribut options n/a Un tableau de libellés pour la liste déroulante selected chaîne de caractères/tableau Non empty Les éléments sélectionnés options Tableau associatif Oui, à moins que vous n'utilisiez option et values n/a Un tableau associatif valeur / libellé name chaîne de caractères Non empty Nom du goupe d'options Si la valeur donnée est un tableau, elle sera traitée comme un <optgroup> html, et affichée. La récursivité est supportée avec <optgroup>. La sortie est compatible XHTML. Si l'attribut optionnel name est donné, les balises <select name="groupname"></select> entoureront la liste d'options. Sinon, seule la liste <option> sera générée. Tous les paramètres qui ne sont pas dans la liste ci-dessus sont affichés en tant que paires nom / valeur dans la balise <select>. Ils sont ignorés si le paramètre optionnel name n'est pas donné. {html_options} Exemple 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); ?> ]]> Où le template est : {html_options values=$cust_ids output=$cust_names selected=$customer_id} ]]> Exemple 2 : assign('cust_options', array( 1000 => 'Joe Schmoe', 1001 => 'Jack Smith', 1002 => 'Jane Johnson', 1003 => 'Charlie Brown') ); $smarty->assign('customer_id', 1001); ?> ]]> Où le template est : Les deux exemples afficheront : ]]> {html_options} - Exemple avec une base de données (eg PEAR ou ADODB): assign('contact_types',$db->getAssoc($sql)); $sql = 'select contact_id, name, email, contact_type_id from contacts where contact_id='.$contact_id; $smarty->assign('contact',$db->getRow($sql)); ?> ]]> où le template est : {html_options options=$contact_types selected=$contact.type_id} ]]> Voir aussi {html_checkboxes} et {html_radios}.