程序部分
<?php $smarty->assign('status_list', $_LANG['cs']); // 訂單狀態 $smarty->display("index.dwt"); ?>
模板部分
<select name="status" id="status"> {html_options options=$status_list} </select>
可見smarty的html_options接受的其實是一個數組,並且這個數組的鍵值將是option的value值,而數組的值則將是option的顯示值 ,如果要讓某個選項初始化為選擇狀態,
那么,要在模板中指定這個選項的selected=$status_id
程序部分
$smarty->assign('status_id', -1); $smarty->assign('status_list', $_LANG['cs']); // 訂單狀態 $smarty->display("index.dwt");
模板部分
<select name=customer_id> {html_options options=$status_list selected=$status_id} </select>
顯示如下:
<select id="status" name="status"> <option value="-1" selected="">請選擇...</option> <option value="0">待確認</option> <option value="100">待付款</option> <option value="101">待發貨</option> <option value="102">已完成</option> <option value="1">付款中</option> <option value="2">取消</option> <option value="3">無效</option> <option value="4">退貨</option> </select>
............................................華美的分割線...................................
html_options還有一種用法,option的value和顯示是分開的,這樣方便處理其他的一些情況
具體用法如下
index.php:
$smarty->assign('cust_ids ', array(100,200,300,400)); $smarty->assign('cust_names ', array('Joe Schmoe','Jack Smith','Jane Johnson','Carlie Brown')); $smarty->assign('customer_id', 100); $smarty->display('index.dwt');
index.dwt:
<select name=customer_id> {html_options values=$cust_ids selected=$customer_id output=$cust_names } </select>
附:
Smarty {html_options} 的官方教程
{html_options}
是一個自定義函數, 可以使用提供的數據,生成HTML的<select><option>
標簽,還可以設置選中項等屬性。