转载:

最近刚接触ecshop不久,感觉是非常的强大,做商城网站,整个流程都差不多搞好了,就是支付流程要自己完善完善,不过也有不足,文章功能还不够好。

通过几天的应用,总结出了ec模版中foreach的常见用法。

foreach 语法:

假如后台:$smarty->assign('test',$test);

{foreach from=$test item=list name=listone}

<p>{$list}</p>

{/foreach}

from 表示assign过来对应的第一个参数'test',item 就是下面要循环的变量,name是用于访问foreach属性的foreach循环的名称,key当前键名的变量名。

但是我们经常会看到这样的写法:

<!--{foreach from=$test item=list name=listone key=key}-->

<p>{$list}</p>

<!--{/foreach}-->

其实这两种都是一样的,只是加了 <!-- --> 之后,你有没有发现用dreamwearver打开这些语句会以注释一样的灰色显示,这样一眼能看出标签;还有就是调试模版时候,用浏览器打开,加了<!-- -->会注释掉if foreach等这些,而不影响模版原来的样子,更能方便调试模版。

多重循环(两次循环):

<!--{foreach from=$categories item=list}-->

<!--{foreach from=$list.cat item=cat}-->

<a href="{$cat.url}">{$cat.name}</a>

<!--{/foreach}-->

<!--{/foreach}-->

只循环出前两条数据:

<!--{foreach from=$categories item=list name=catlist}-->

<!--{if $smarty.foreach.catlist.iteration<2}-->

<a href="{$list.url}">{$list.name}</a>

<!--{/if}-->

<!--{/foreach}-->

foreachelse :

<!--{foreach from=$categories item=list}-->

<a href="{$list.url}">{$list.name}</a>

<!--{foreachelse}-->

<p>no data</p>

<!--{/foreach}-->

如果{foreach from=$categories item=list}一条数据也没有,那么就执行下面的{foreachelse}{/foreach}里面的内容。

多重循环(两次循环):

<!--{foreach from=$categories item=list}-->
<!--{foreach from=$list.cat item=cat}-->
<a href="{$cat.url}">{$cat.name}</a>
<!--{/foreach}-->
<!--{/foreach}--> 只循环出前两条数据: <!--{foreach from=$categories item=list name=catlist}-->
<!--{if $smarty.foreach.catlist.iteration<}-->
<a href="{$list.url}">{$list.name}</a>
<!--{/if}-->
<!--{/foreach}-->

2.ecshop中smarty的下标如何表示,请看下面的例子:
     {foreach from = $array item = item name=name} 
     {$smarty.foreach.name.iteration}
     {/foreach}

这里的iteration就是从1开始的下标,
     如果要从0开始的下标,应该使用{$smarty.foreach.name.index}

3.如何判断是否是foreach循环的开始和结束,最后一个元素.

{if $smarty.foreach.last}表示循环的最后一个元素.{if $smarty.freach.first}表示循环的开始.

4.实例

<!--{foreach from=$ad_class_9 item=cat name=ad_class_czdq key=key}-->
<!--{if $smarty.foreach.ad_class_czdq.last}-->
<a href="{$cat.url}" target="_blank">{$cat.ad_code}</a>
<!--{else}-->
<a href="{$cat.url}" target="_blank">{$cat.ad_code}</a> |
<!--{/if}-->
<!--{/foreach}-->

ecshop循环foreach,iteration,key,index的更多相关文章

  1. 关于Vue中:key="index"的console警告

    在写vue项目时,浏览器的console出现如下警告信息: [Vue warn]: Property or method "index" is not defined on the ...

  2. 详解 Diff 算法以及循环要加 key 值问题

    上一篇文章我简述了什么是 Virtual DOM,这一章我会详细讲 Diff 算法以及为什么在 React 和 Vue 中循环都需要 key 值. 什么是 DOM Diff 算法 Web 界面其实就是 ...

  3. for循环,for…in循环,forEach循环的区别

    for循环,for…in循环,forEach循环的区别for循环通关for循环,生成所有的索引下标for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 } ...

  4. Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究

    Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究 在github上阅览README.md以获得最佳阅读体验,点这里 v-for响应式key ...

  5. “全栈2019”Java第三十二章:增强for循环Foreach语法

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. index 定义 v-for 未使用变量 实际是没有 :key="index"

    需要有 :key="index" <Checkbox :label="item.key" :key="index" v-for=&qu ...

  7. elementui---for循环需要添加KEY

    在用VUE和elementui开发项目的时候,在开启 es-lient 的时候,如果for循环没有添加 key ,会报语法上的错误. genderSelect:[ {value:0,label:'女' ...

  8. ecshop中foreach的详细用法归纳

    ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...

  9. ecshop循环计数

    循环依次递增+1 <!-- {foreach from=$comments item=comment name=comment} --> {$smarty.foreach.comment. ...

随机推荐

  1. [转]JS中对象与字符串的互相转换

    原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...

  2. spring3使用task:annotation-driven开始定时

    先看一个案例 package com.jCuckoo.demo; import java.text.SimpleDateFormat; import java.util.Date; import or ...

  3. 面试题:Integer和int的区别?在什么时候用Integer和什么时候用int

    /*  * (1) int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类. * (2)int的默认值为0, 而Integer的默 ...

  4. SPOJ ORDERSET - Order statistic set

    ORDERSET - Order statistic set   In this problem, you have to maintain a dynamic set of numbers whic ...

  5. 基于SURF特征的目标检测

    转战matlab了.步骤说一下: 目标图obj 含目标的场景图scene 载入图像 分别检测SURF特征点 分别提取SURF描述子,即特征向量 用两个特征相互匹配 利用匹配结果计算两者之间的trans ...

  6. 【poj1011】 Sticks

    http://poj.org/problem?id=1011 (题目链接) 题意 给出一大堆小棍子的长度,需要把他们拼成几根长度相等的大棍子,求大棍子的最短长度. Solution 经典搜索题,剪枝剪 ...

  7. Diccuz!NT的dll版本号控制技巧

    dnt每次发布新版本时,公布出来的版本号都是3位数以上,拿3.6.711这个版本号的代码来说,几乎每一个dll上都是统一的版本号命名: 对于一个成熟的产品来说,统一一致的版本号命名有以下的好处: 1. ...

  8. [NOIP2015] 提高组 洛谷P2668 斗地主

    题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...

  9. Android——PULL解析XML

    简介 Android中常常使用XML文件保存用户的APP设置信息.因此需要对XML文件的相关操作进行了解.本文将以<学生信息管理系统>为案例背景进行介绍相关的XML解析的介绍,以及其他相关 ...

  10. Linux 下进程的内存空间分配

    这里主要是以 C 语言为例,其他语言开发的程序,每个进程都会有一个类似的空间.下面是一段 C 代码: #include <stdlib.h> #include <stdio.h> ...