ecshop循环foreach,iteration,key,index
转载:
最近刚接触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的更多相关文章
- 关于Vue中:key="index"的console警告
在写vue项目时,浏览器的console出现如下警告信息: [Vue warn]: Property or method "index" is not defined on the ...
- 详解 Diff 算法以及循环要加 key 值问题
上一篇文章我简述了什么是 Virtual DOM,这一章我会详细讲 Diff 算法以及为什么在 React 和 Vue 中循环都需要 key 值. 什么是 DOM Diff 算法 Web 界面其实就是 ...
- for循环,for…in循环,forEach循环的区别
for循环,for…in循环,forEach循环的区别for循环通关for循环,生成所有的索引下标for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 } ...
- 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 ...
- “全栈2019”Java第三十二章:增强for循环Foreach语法
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- index 定义 v-for 未使用变量 实际是没有 :key="index"
需要有 :key="index" <Checkbox :label="item.key" :key="index" v-for=&qu ...
- elementui---for循环需要添加KEY
在用VUE和elementui开发项目的时候,在开启 es-lient 的时候,如果for循环没有添加 key ,会报语法上的错误. genderSelect:[ {value:0,label:'女' ...
- ecshop中foreach的详细用法归纳
ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...
- ecshop循环计数
循环依次递增+1 <!-- {foreach from=$comments item=comment name=comment} --> {$smarty.foreach.comment. ...
随机推荐
- jsp内置对象作业3-application用户注册
1,注册页面 zhuCe.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...
- 转: linux内核版本本地版本号的检查——setlocalversion
转载:http://blog.csdn.net/adaptiver/article/details/7225980 1. 引子 编译2.6.35.7 kernel版本的时候发现,"2.6 ...
- npm安装完bower,使用时提示bower不是内部或外部命令
归根结底还是环境变量的问题,但是配了好几次没配成功,最后就直接把装好的node里面的复制到系统创建的环境变量目录下,问题解决! 问题描述:我们安装node.js,npm,通过npm安装bower一路正 ...
- poj1966 求顶点连通度
Cable TV Network Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4563 Accepted: 2118 ...
- CSS3动画属性之Animation
首先定义一个动画规则: @keyframes mymove { from {top:0px;} to {top:200px;} } @-moz-keyframes mymove /* Firefox ...
- noip复习模板
我只会这么多 tarjan:codevs 1332 void tarjan(int u) { dfn[u]=low[u]=Time++; s.push(u); for(int i=head[u];~i ...
- Fiddler+Jmeter+断言详细教程
一.Fiddler抓包工具的配置和使用 在编写网关自动化脚本之前,得先学会如何抓包,这里以Fiddler为例.会抓包的同学可以跳过这一步,当然看看也是没坏处的-- 局域网络配置 将要进行抓包的手机与电 ...
- 【USACO 2.2】Preface Numbering (找规律)
求 1-n 的所有罗马数字表达中,出现过的每个字母的个数. 分别对每个数的罗马表达式计算每个字母个数. 对于十进制的每一位,都是一样的规则,只是代表的字母不同. 于是我们从最后一位往前考虑,当前位由字 ...
- 【bzoj1500】 noi2005—维护数列
http://www.lydsy.com/JudgeOnline/problem.php?id=1500 (题目链接) 题意 要求维护数列,操作有区间删除,区间插入,区间反转,区间修改,区间求和,求最 ...
- Linq Like
Like的操作,有点像in,但是,方向变了.什么意思呢.就是你给定一个字符串,去寻找数据中某个字段包含这个字符串.就是给定的字符串是某字段的子集.Sql Script是这么写的. Selec * fr ...