smarty中section的使用方法

先来看section中的属性

name:(必选) 是section循环的名称只是标示循环唯一的名字没有特别意义,前面没有$符号;

loop: (必选)是在php声明中的变量名称,用来标示是循环哪一个数组(即要循环数组名)需要使用$;

start: (可选)循环执行的初始位置. 如果该值为负数,开始位置从数组的尾部算起. 例如:如果数组中有7个元素,指定start为-2,那么指向当前数组的索引为5. 非法值(超过了循环数组的下限)将被自动调整为最接近的合法值.

step: (可选)如其它语言的循环,是一个步长,如果为负数,则倒序循环;

max:(可选)循环的最大下标,如果是1则只循环1次,如果为2则循环2次;

show:(可选)默认为true即显示。如果设置了{sectionelse}。表示如果数组没有内容的时候显示这部分的内容;如果show为false则显示这部分。如果没有设置{sectionelse}则不输出该数组。

 

我们先看一个例子,这是经常会用到的

1、循环一个简单的一维数组:

php代码

 代码如下 复制代码

<?php
$data = array(1000,1001,1002);
$smarty->assign('custid',$data);
?>

htm模板

{{section name=loop loop=$custid step=1}}
<div class="listout_box" onmousemove="this.className='listout_box bg_ffe'" onmouseout="this.className='listout_box'">
<div class="fl" style="width:3%;text-align:left;">{{$smarty.section.loop.rownum}}</div>
   <div class="fl_" style="width:10%;">城市</div>
</div>
{{/section}}

2、不用assign数组直接在smarty中循环:

 代码如下 复制代码

//特别地设置了start,step属性用来控制循环
//$smarty.section.section的名字.index是一个特殊变量,用来显示当前循环的位置
{section name=foo start=10 loop=20 step=2}
{$smarty.section.foo.index}
{/section}
<hr />
{section name=bar loop=21 max=6 step=-2}
{$smarty.section.bar.index}
{/section}

//输出:
10 12 14 16 18
<hr />
20 18 16 14 12 10

上面讲到的都是简单的,下面们来介绍关联数组

 代码如下 复制代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1     $arr = array(
         array('id'=>1,'title'=>'title1'),
         array('id'=>2,'title'=>'title2'),
         array('id'=>3,'title'=>'title3')
     );
    
     $smarty->assign('news',$arr);

在模板中显示过程如下

 代码如下 复制代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 {section name=sn loop=$news}
     {if $smarty.section.sn.first}
         <table>
         <th>id</th>
         <th>title</th>
     {/if}
     <tr>
         <td>{$news[sn].id}</td>
         <td>{$news[sn].title}</td>
     </tr>
     {if $smarty.section.sn.last}
         </table>
     {/if}
 {sectionelse}
     there is no news.
 {/section}

时间: 2024-09-28 03:19:20

smarty中section的使用方法的相关文章

smarty中section的使用

问题描述 smarty中section的使用 索引部分: $this->smarty->assign('data0', $list ['data0']); $this->smarty->assign('result', $list['result']); $this->smarty->displayHtml ( "task/getunpass.html" ); {"data0":[{"任务GID":"

smarty中js的调用方法示例_php实例

本文实例讲述了smarty中js的调用方法,分享给大家供大家参考.具体方法分析如下: 一.问题: 有时候,在smarty中,包含js的时候,整个页面就不会显示,而程序员往往在页面中找错误,程序页面,模板页面检查了多次都没有错误,就很郁闷了. 二.解决办法: 把模板页面中的js代码拷贝出来放在新建的js文件中,然后在包含到模板页面里面,如: 复制代码 代码如下: {popup_init src="css/commen.js"} 这样一来,问题就解决了. 希望本文所述对大家的PHP程序设计

Smarty中调用FCKeditor的方法_php实例

本文实例讲述了Smarty中调用FCKeditor的方法,分享给大家供大家参考.具体实现方法如下: FCKeditor是目前互联网上最好的在线编辑器. smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序 员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 在Smarty中调用FCKeditor的文件: 复制代码 代码如下: requ

PHP模板引擎Smarty中变量的使用方法示例_php实例

本文实例讲述了PHP模板引擎Smarty中变量的使用方法.分享给大家供大家参考,具体如下: 一.概述: Smarty 是 PHP 众多模板引擎中的一个,它是根据 PHP 编写的一个类库. Smarty 的优点: 1.优化网站访问速度: 2.网页前端设计和程序的分离: 二.Smarty 的安装 1.需要到 Smarty 的官方网站 http://www.smarty.net/download.php 下载最新的 Smarty 版本,比如下载的版本为:Smarty-2.6.18.tar.tar: 2

smarty中常用方法实例总结_php实例

本文实例总结了smarty中常用方法.分享给大家供大家参考.具体如下: 1. Smarty中foreach的index.iteration的使用 .index包含当前数组索引,从零开始. index示例 {* The header block is output every five rows *} {* 每五行输出一次头部区块 *} <table> {foreach from=$items key=myId item=i name=foo} {if $smarty.foreach.foo.i

PHP模板引擎Smarty内建函数section,sectionelse用法详解_php实例

本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法.分享给大家供大家参考,具体如下: section 是 Smarty 模板中除了 foreach 以外的另一种处理循环的方案,section 比 foreach 要灵活,就像是一个改进的 foreach 语句,除了拥有相同的循环特性外,还提供了很多附加选项,可以更好的控制循环的执行.在模板中,必须使用成对的 section 标记,有两个必须设置的属性 name 和 loop ,关于 section 的属性请

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中获取数据的方法_php实例

本文实例讲述了smarty模板引擎从php中获取数据的方法.分享给大家供大家参考.具体如下: smarty可以分配($smarty->assign)的变量类型:所有php支持的数据类型--基本数据类型.复合数据类型.特殊数据类型(具体见smarty相关手册). 操作/显示文件:index.php 复制代码 代码如下: <?php //创建smarty对象 require_once("./libs/Smarty.class.php"); $smarty = new Smart

PHP中__autoload和Smarty冲突的简单解决方法_php实例

本文讲述了PHP中__autoload和Smarty冲突的简单解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近,在项目中发现,PHP 的 __autoload 方法失效了.调试了好久,百思不得其解,查了下资料才知道原来是 Smarty 的原因.新版的 Smarty 改变了autoload的方式. 二.解决方法: 在 Smarty 的包含类文件后加一段代码,spl_autoload_register("__autoload"); 如下: <?php define('RO