{html_options} {html_options} adalah fungsi kustom yang membuat grup html <select><option> dengan data yang ditempatkan. Ia menangani item-item yang dipilihnya juga. Nama Atribut Tipe Diperlukan Default Deskripsi values array Ya, kecuali memakai atribut options n/a Array nilai untuk dropdown output array Ya, kecuali memakai atribut options n/a Array output untuk dropdown selected string/array Tidak empty Elemen opsi yang dipilih options associative array Ya, kecuali memakai nilai dan output n/a Array nilai asosiatif dan output name string Tidak empty Nama pilihan grup Atribut yang dibutuhkan adalah values dan output, kecuali anda sebaliknya menggunakan options yang dibagung. Jika atribut opsional name disediakan, tag <select></select> dibuat, sebaliknya HANYA daftar <option> yang dibuat. Jika yang nilai diberikan adalah array, ia akan memperlakukannya sebagai html <optgroup>, dan menampilkan grup. Rekursi didukung dengan <optgroup>. Semua parameter yang tidak dalam daftar di atas dicetak sebagai pasangan nama/nilai di dalam tag <select>. Diabaikan jika name opsional tidak disediakan. Semua output sesuai dengan XHTML. Array asosiatif dengan atribut <varname>options</varname> assign('myOptions', array( 1800 => 'Joe Schmoe', 9904 => 'Jack Smith', 2003 => 'Charlie Brown') ); $smarty->assign('mySelect', 9904); ?> ]]> Template berikut akan membuat daftar drop-down. Perhatikan keberadaan atribut name yang membuat tag <select>. Output dari contoh di atas akan terlihat seperti: ]]> Dropdown dengan array terpisah untuk<varname>values</varname> dan <varname>ouptut</varname> assign('cust_ids', array(56,92,13)); $smarty->assign('cust_names', array( 'Joe Schmoe', 'Jane Johnson', 'Charlie Brown')); $smarty->assign('customer_id', 92); ?> ]]> Array di atas yang akan ditampilkan dengan template berikut (perhatikan penggunaan fungsi php count() sebagai pengubah untuk menyetel ukuran pilihan). {html_options values=$cust_ids output=$cust_names selected=$customer_id} ]]> Contoh di atas akan memperlihatkan: ]]> Contoh database (misal ADODB atau PEAR) 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)); ?> ]]> Di mana sebuah template bisa seperti berikut. Perhatikan penggunaan pengubah truncate. {html_options options=$contact_types|truncate:20 selected=$contact.type_id} ]]> Dropdown dengan <optgroup> 'Golf', 9 => 'Cricket',7 => 'Swim'); $arr['Rest'] = array(3 => 'Sauna',1 => 'Massage'); $smarty->assign('lookups', $arr); $smarty->assign('fav', 7); ?> ]]> Naskah di atas dan template berikut akan memperlihatkan: ]]> Lihat juga {html_checkboxes} dan {html_radios}