Smarty 是什么?
为什么要使用它?
用例与工作流程
语法比较
模板继承
最佳实践
速成教程
{html_checkboxes}
为一个 自定义函数,使用提供的数据创建 html 复选框组。它还会负责处理默认选择的项。
属性名称 | 类型 | 是否必需 | 默认值 | 描述 |
---|---|---|---|---|
name | 字符串 | 否 | checkbox | 复选框列表的名称 |
values | 数组 | 是,除非您使用 options 属性 | 不适用 | 用于复选框按钮的一组值 |
output | 数组 | 是,除非您使用 options 属性 | 不适用 | 用于复选框按钮的一组输出 |
selected | 字符串/数组 | 否 | 空 | 选中的复选框元素 |
options | 关联数组 | 是,除非使用 values 和 output | 不适用 | 一个关联数组,包含值和输出 |
separator | 字符串 | 否 | 空 | 用来分隔每个复选框项的文本字符串 |
assign | 字符串 | 否 | 空 | 将复选框标记分配给数组,而不是输出 |
labels | 布尔值 | 否 | TRUE |
在输出中添加 <label> 标签 |
label_ids | 布尔值 | 否 | FALSE |
在输出中的 <label> 和 <input> 中添加 id 属性 |
escape | 布尔值 | 否 | TRUE |
转义输出/内容(值始终被转义) |
strict | 布尔值 | 否 | FALSE |
如果使用布尔 TRUE 或字符串 "disabled" 和 "readonly" 分别提供,将使 "extra" 属性 disabled 和 readonly 只能被设置 |
必需属性为 values
和 output
,除非您使用 options
代替它们。
所有输出都符合 XHTML 要求。
所有不在以上列表中的参数都作为名/值对打印在创建的每个 <input> 标签中。
实例 8.6 {html_checkboxes}
<?php $smarty->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); ?>
其中模板是
{html_checkboxes name='id' values=$cust_ids output=$cust_names selected=$customer_id separator='<br />'}
或其中 PHP 代码是
<?php $smarty->assign('cust_checkboxes', array( 1000 => 'Joe Schmoe', 1001 => 'Jack Smith', 1002 => 'Jane Johnson', 1003 => 'Charlie Brown') ); $smarty->assign('customer_id', 1001); ?>
并且模板是
{html_checkboxes name='id' options=$cust_checkboxes selected=$customer_id separator='<br />'}
这两个示例的两种输出
<label><input type="checkbox" name="id[]" value="1000" />Joe Schmoe</label><br /> <label><input type="checkbox" name="id[]" value="1001" checked="checked" />Jack Smith</label> <br /> <label><input type="checkbox" name="id[]" value="1002" />Jane Johnson</label><br /> <label><input type="checkbox" name="id[]" value="1003" />Charlie Brown</label><br />
示例 8.7 数据库示例(如 PEAR 或 ADODB)
<?php $sql = 'select type_id, types from contact_types order by type'; $smarty->assign('contact_types',$db->getAssoc($sql)); $sql = 'select contact_id, contact_type_id, contact ' .'from contacts where contact_id=12'; $smarty->assign('contact',$db->getRow($sql)); ?>
以上数据库查询结果将通过输出。
{html_checkboxes name='contact_type_id' options=$contact_types selected=$contact.contact_type_id separator='<br />'}
另请参见 {html_radios}
和 {html_options}