smarty模板中html_options用法介绍

先看看html_option函数参数表:

属性 类型 是否必须 缺省值 描述
values array 是,除非使用option属性 n/a 包含下拉列表各元素值的数组
output array 是,除非使用option属性 n/a 包含下拉列表各元素显示值的数组
selected string/array 否 empty 已选定的元素或元素数组
options associative array 是,除非使用value和output n/a 包含值和显示的关联数组
name string 否 empty 下拉菜单的名称

如果给定值是数组,那么会作为OPTGROUP 处理并显示,支持递归。

示例1:

 代码如下 复制代码
index.php:
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane  Johnson','Carlie Brown'));
$smarty->assign('customer_id', 1001);
$smarty->display('index.tpl');
index.tpl:
<select name=customer_id>
{html_options values=$cust_ids selected=$customer_id output=$cust_names}
</select>

输出:

 代码如下 复制代码
<select name=customer_id>
<option value="1000">Joe Schmoe</option>
<option value="1001" selected="selected">Jack Smith</option>
<option value="1002">Jane Johnson</option>
<option value="1003">Charlie Brown</option>
</select>

示例2:
post.php

 代码如下 复制代码
$dba = dba();
$rs_categories = get_post_categories($dba); //这里用到了自己写的函数,取出所有
categoryforeach($rs_categories as $key=>$value){
$categorie_ids[$key]=$value['id'];$categorie_names[$key]=$value['title'];
}
$smarty = new Smarty();
$smarty->assign('categorie_ids', $categorie_ids);
$smarty->assign('categorie_names', $categorie_names);post.tpl
<select id="category">
<{html_options values=$categorie_ids output=$categorie_names}>
</select>

输出

 代码如下 复制代码
<select id="category">
 <option value="1">打折信息</option>
<option value="2">优惠券</option>
</select>

模板部分

 代码如下 复制代码
<select name="select2" size="4" id="alluser" style="width:300px; height:200px;" multiple="multiple">
<{html_options options=$sysUser}>
</select>

程序部分

 代码如下 复制代码
$sql_sysuser = "select * from tuser where tuser_status='1' order by tuser_truename";
$rs_sysuser = $db->sql_query($sql_sysuser);
while($row_sysuser = $db->sql_fetchrow($rs_sysuser)){
 $usersys[$row_sysuser['tuser_name']]=$row_sysuser['tuser_truename'];
}

可见smarty的html_options接受的其实是一个数组,并且这个数组还是有点要求滴~
数组的键值将是option的value值,而数组的值则将是option的显示值,如果需要初始状态某个值是出于选择状态,那么

程序部分

 代码如下 复制代码
$smarty->assign('customer_id', 1001);

模板部分

 代码如下 复制代码
<select name=customer_id>
 {html_options options=$cust_options selected=$customer_id}
</select>

html_options还有一种用法,option的value和显示是分开的,这样方便处理其他的一些情况
具体用法如下
index.php:

 代码如下 复制代码

require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
Johnson','Carlie Brown'));
$smarty->assign('customer_id', 1001);
$smarty->display('index.tpl');

index.tpl:

 代码如下 复制代码

<select name=customer_id>
 {html_options values=$cust_ids selected=$customer_id output=$cust_names}
</select>

时间: 2024-10-26 01:59:54

smarty模板中html_options用法介绍的相关文章

php中smarty模板条件判断用法实例_php实例

本文实例讲述了php中smarty模板条件判断用法.分享给大家供大家参考.具体实现方法如下: 模板文件test6.html代码: <html> <head> <title>Smarty Test</title> </head> <body> <table width="200" border="0"> {if $cond == 1} <tr> <td>条件成立

smarty模板中拼接字符串的方法

 这篇文章主要介绍了smarty模板中拼接字符串的方法,需要的朋友可以参考下 PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替)   代码如下: {assign var="name" value='Richard.Lee'} {assign var="age" value='27'}     1.想要在Smarty模板的某个位置输出(Richard.Lee---27) 拼接方法:{$name|cat:"---"|c

Smarty模板变量调节器用法分析_php实例

本文讲述了Smarty模板变量调节器用法.分享给大家供大家参考,具体如下: 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理文本,语法方式如下: {$var|modifier1|modifier2|modifier3|-} 说明:1.不管应用了多少个函数,都应该以|来进行分离. 说明:2.参数用":"分开,如: {$str|truncate:40:"...&

Smarty模板变量调节器用法分析

本文讲述了Smarty模板变量调节器用法.分享给大家供大家参考,具体如下: 在smarty里面,怎么修饰文本和变量呢?当然,你可以通过php函数处理文本,然后再通过assign()方法分配到模板,其实smarty提供了变量调节器能够很容易的处理文本,语法方式如下: {$var|modifier1|modifier2|modifier3|-} 说明:1.不管应用了多少个函数,都应该以|来进行分离. 说明:2.参数用":"分开,如: {$str|truncate:40:"...&

在smarty模板中使用PHP函数的方法

sample1 复制代码 代码如下:<{$colname|trim}> 那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成: sample 2 复制代码 代码如下:<{$colname|iconv:'utf-8':'gbk'}> 一执行就会发现显示error信息. 因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接: 那假设要使用像ic

smarty模板中怎么使用urlencode()函数

解决方法一 直接在php中使用  代码如下 复制代码 $a = urlencode($str); 方法二 在smarty模板中如下操作  代码如下 复制代码 ad_title=<{$vo.ad_title|escape:"url"}> 就是了

在smarty模板中使用PHP函数的方法_php模板

sample1 复制代码 代码如下: <{$colname|trim}> 那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成: sample 2 复制代码 代码如下: <{$colname|iconv:'utf-8':'gbk'}> 一执行就会发现显示error信息. 因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接: 那假设要使用像

如何在smarty模板中定义变量与常量

  定义常量非常的简单 方法是:  代码如下   {$smarty.const.你定义的常量名} 定义变量如何做呢? smarty中定义变量 . {*下面的这一段相当于在模板内部定义一个变量UserName*}  代码如下   {assign var="UserName" value="myz"} 这里将显示模板内部定义的一个变量:UserName = {$UserName} 例子  代码如下   <*assign var="i" valu

smarty模板中拼接字符串的方法_php实例

PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替) 复制代码 代码如下: {assign var="name" value='Richard.Lee'}{assign var="age" value='27'} 1.想要在Smarty模板的某个位置输出(Richard.Lee---27)拼接方法:{$name|cat:"---"|cat:$age}解释:将变量$name."---".$age 拼