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. ...
随机推荐
- MyBatis_ibatis和mybatis的区别【转】
1. ibatis3.*版本以后正式改名为mybaits,它也从apache转到了google code下:也就是说ibatis2.*,mybatis3.*. 2. 映射文件的不同 ibatis的配置 ...
- 【TYVJ 1463】智商问题 (闲得无聊)
老老实实写二分. #include<cstdio> #include<algorithm> using namespace std; int n, a[1000001], x; ...
- mysql之路【第三篇】
1,查看表的结构 desc 表名; 查看表的详细结构 show create table; show create table \G; (加上G格式化输出), 2,修改表 2. ...
- swift中的结构体和枚举
Swift 里的结构体非常特殊. 类是面向对象编程语言中传统的结构单元.和结构体相比,Swift 的类支持实现继承,(受限的)反射,析构函数和多所有者. 既然类比结构体强大这么多,为什么还要使用结构体 ...
- Pointcut is not well-formed: expecting 'name pattern' at character position
配置aop报错:原因是配置切点表达式的时候报错了, 星号后面没有加空格: <aop:config> <aop:pointcut id="transactionPointcu ...
- BP神经网络推导过程详解
BP算法是一种最有效的多层神经网络学习方法,其主要特点是信号前向传递,而误差后向传播,通过不断调节网络权重值,使得网络的最终输出与期望输出尽可能接近,以达到训练的目的. 一.多层神经网络结构及其描述 ...
- 【BZOJ-1670】Building the Moat护城河的挖掘 Graham扫描法 + 凸包
1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 464 Solv ...
- JSR303注解
Annotation 属于Bean Validation 规范 应用位置 作用 对Hibernate Core中的元数据的影响 @AssertFalse yes field/property 检查被标 ...
- 未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序解决办法
错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 解决办法: 去http://download.microsoft.com/download/7/0/3/7 ...
- “SQLServerAgent当前未运行”问题解决
在执行SQLServer计划任务的时候,出现了如下所示的错误: 解决方法: 配置工具--sqlserver 配置管理器--SQLSERVER服务--右侧最下面--点击启动AGENT即可