Ecshop模板中html_options用法详解

2022-12-15 12:37:02 浏览数 (1)

程序部分

代码语言:javascript复制
<?php
$smarty->assign('status_list', $_LANG['cs']);   // 订单状态
$smarty->display("index.dwt");
?>

模板部分

代码语言:javascript复制
<select name="status" id="status">
{html_options options=$status_list}
</select>

可见smarty的html_options接受的其实是一个数组,并且这个数组的键值将是option的value值,而数组的值则将是option的显示值 ,如果要让某个选项初始化为选择状态,

那么,要在模板中指定这个选项的selected=$status_id

程序部分

代码语言:javascript复制
$smarty->assign('status_id', -1);
$smarty->assign('status_list', $_LANG['cs']);   // 订单状态
$smarty->display("index.dwt");

模板部分

代码语言:javascript复制
<select name=customer_id>
 {html_options options=$status_list selected=$status_id}
</select>

显示如下:

代码语言:javascript复制
<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:

代码语言:javascript复制
$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:

代码语言:javascript复制
<select name=customer_id>
 {html_options values=$cust_ids selected=$customer_id output=$cust_names }
</select>

附:

Smarty {html_options} 的官方教程

{html_options}是一个自定义函数, 可以使用提供的数据,生成HTML的<select><option>标签,还可以设置选中项等属性。

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:

原文出处:Yiiven https://cloud.tencent.com/developer/article/2193098

0 人点赞