• 网站首页
  • 安装指南
  • 模板设计
  • 模块说明
  • 常见问题
  • 优化技巧
  • 开发指南
  • 帮助中心
  • 入门必读
    • -模板首页
    • -目录结构
  • css规范
    • -css实例
    • -基本样式
    • -表格样式
    • -表单样式
    • -布局样式
    • -常用样式
    • -醒目效果
    • -常用界面
  • 网页规范
    • -总体布局示例
    • -提交表单示例
    • -table表格示例
    • -文章列表示例
    • -文章阅读示例
    • -tab标签示例
    • -li列表
  • JS规范
    • -js文件说明
    • +通用函数
      • |-$函数
      • |-$A
      • |-$F
      • |-loadJs
    • +Element扩展
      • |-previousElement
      • |-nextElemet
      • |-remove
      • |-subTag
      • |-setValue
      • |-getValue
      • |-show
      • |-hide
    • +String扩展
      • |-trim
      • |-cint
      • |-stripTags
      • |-hasSubString
    • +Array扩展
      • |-indexOf
      • |-each
    • +Cookie处理
      • |-get
      • |-set
      • |-del
    • +Form处理
      • |-serialize
      • |-getElements
      • |-enable
      • |-disable
      • |-reset
    • +Ajax处理
      • |-Request
      • |-Update
      • |-Tip
    • +界面控件
      • |-对话框
      • |-日期选择框
      • |-UBB提交框
  • 模板设计
    • -模板标签标记
    • -赋值变量形式
    • -变量调节器
    • -函数调用
    • -判断语句
    • -循环语句
    • -页面显示相关说明
    • -页面显示配置语法
    • -页面定制
    • -包含子模块
  • 导航示例
    • -横向切换导航
    • -竖向下拉导航
    • -横向下拉导航
  • 文章列表特效
    • -排行榜列表一
    • -排行榜列表二
    • -图文列表
  • tab标签特效
    • -切换效果
    • -三角切换
    • -时间切换
    • -竖向切换
    • -特殊切换1
    • -特殊切换2
    • -相互切换1
    • -相互切换2
    • -相互切换3
    • -颜色切换
您现在所在的位置:JIEQI CMS模板设计手册 > 模板设计 > 循环语句

循环语句

循环语句由 {?section name=i loop=$var columns=1?} 开头,{?/section?} 结束。
name=i 的 i 是循环时候的中间变量名(名称可以自由设置,不能和其他变量同名)。
loop=$var 的 $var 是实际内容数组。
columns=1 的 1 是指循环的时候分成几列,可以不写这部分,默认为一列。这个参数主要用于生成多行多列的 表格,当这个参数大于1的时候,程序会自动把循环次数补足成列的倍数。比如内容数组一共有6个值,默认循环六 次,如果要生成四列的表格,那么循环就会变成8次,这样正好生成4列2行的表格。
在实际使用中,name 后面的变量也会被转换成一个数组,在每次循环里面会相应赋值。如前面的写法,模板里面 变量标签是 $i 的一个数组,包含以下内容

固定参数部分:

$i['columns'] - 当前循环是几列的模式。
$i['count'] - 内容数组的单元个数
$i['addrows'] - 多列的时候,附加的循环次数
$i['loops'] - 总的循环次数

循环变量部分:

$i['key'] - 当前数组单元的键值。
$i['value'] - 当前数组单元内容
$i['index'] - 循环的内部序号,从0开始,逐个递增
$i['order'] - 循环的排序,从1开始,逐个递增
$i['row'] - 当前是第几行,从1开始
$i['column'] - 当前是第几列,从1开始
$i['append'] - 当前循环是不是附加循环,0 表示否,1 表示是
例子1:单列循环
---------------------------------------------------------------------

程序:

$var=array('a', 'b', 'c', 'd', 'e');
$jieqiTpl->assign('var', $var);

模板:

{?section name=i loop=$var?}
($var[$i['key']])
{?/section?}

输出:

(a)(b)(c)(d)(e)
备注:上面 $var[$i['key']],$i['value'] 这两种方式表达的值是一样的,另外兼容老版的表达方式 $var [i]
---------------------------------------------------------------------
例子2:多列循环
---------------------------------------------------------------------

程序:

$var=array('a', 'b', 'c', 'd', 'e');
$jieqiTpl->assign('var', $var);

模板:

<table width="100%" border="1">
{?section name=i loop=$var columns=3?}
{?if $i['column'] == 1?}<tr>{?/if?}
<td>{?$i['order']?}.{?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?} {?/if?}</td>
{?if $i['column'] == $i['columns']?}</tr>{?/if?}
{?/section?}
</table>

输出:

<table width="100%" border="1">
<tr>
<td>1.a</td>
<td>2.b</td>
<td>3.c</td>
</tr>
<tr>
<td>4.d</td>
<td>5.e</td>
<td>6. </td>
</tr>
</table>

备注:

{?section name=i loop=$var columns=3?} 开始循环,按照3列的模式生成
{?if $i['column'] == 1?}<tr>{?/if?} 每行开始第一列时候,前面加上 <tr> 标记
{?if $i['column'] == $i['columns']?}</tr>{?/if?} 每行到最后一列时候,后面加上 </tr> 标记
{?$i['order']?} 数字序号,从1开始递增
{?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?} {?/if?} 如果不是附加字段,则直接输出内 容,否则输出  
---------------------------------------------------------------------