DEDECMS织梦模板开发,如何使用if进行多分支判断

2019-03-3022:04:30网站建设与开发Comments2,278 views字数 1271阅读模式

dede做模板的时候,经常会遇到需要根据某个条件判断来分别显示不同的内容的情况,也就是dede模板中的多分支判断。比如典型的,我们需要根据风险管理数据库表中的风险等级字段risklevel的取值的不同分别显示不同的风险提示图标。如图1 所示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

DEDECMS织梦模板开发,如何使用if进行多分支判断红色框中的投资项目名称前面的图标表示了不同的风险等级,一共有AA,D,E,HR 4个风险等级。在数据库表中保存的分别是这4个等级取值中的一个,如图2 所示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

DEDECMS织梦模板开发,如何使用if进行多分支判断文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

我们的风险等级字段risklevel 是可以在列表模板中获取到其取值的,因为我们在内容模型中已经设置了该字段允许被在列表模板中取值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

如图 3 所示。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

DEDECMS织梦模板开发,如何使用if进行多分支判断文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

这样,我们在列表模板中就很容易通过文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

{dede:listpagesize='10'}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

[field:risklevel/]文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

{/dede:list}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

来得到风险等级的取值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

但是我们不同风险等级对应的提示图标却位于图片目录下,而且这些提示图片文件的名称没有任何规律,那么我们就需要通过if判断来根据风险等级的不同取值来设置不同的提示图片路径。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

那么应该如何来判断呢?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

需要使用到[field:array]标签,那么我们该如何来判断呢?我们首先要向大家介绍一个非常有用的dede标签:[field:array] 标签,该标签是标签 {dede:field name='array' /}的简写形式,该标签用在列表标签内部,例如:{dede:list}标签, {dede: arclist}等标签内部。 我们知道,在列表标签内部我们可以通过[field:字段名/]的形式得到某个数据库表字段的取值,那么当我们想要进行分支判断的时候,例如:根据风险等级取值的不同得到不同的图标路径,这个时候我们就必须借助[field:array] 标签了,[field:array] 标签标签代表查询得到的数据库表中的一条记录,具体的判断代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

[field:array runphp='yes']文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

if(@me['risklevel']=="HR")@me="";文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

else if(@me['risklevel']=="D")@me="";文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

else if(@me['risklevel']=="AA")@me="";文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

[/field:array]文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

{/dede:list}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

其意思就是说如果查询得到的风险等级字段的取值是HR,那么将输出, 如果查询得到的风险等级字段的取值是D,那么将输出,如果查询得到的风险等级字段的取值是AA,那么将输出, 这里的,只是一个字符串,代表图片文件所在的位置,你可以设置成任意的图片路径,上面的代码是一种分支条件输出语句,@me代表的就是输出变量,刚进入标签field:array时,@me代表数据库的一条记录,其数据类型是数组,我们根据其中risklevle的取值来判断,从而将@me设置成不同的值,当退出标签field:array时,@me的值就会被显示在原位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

这个标签的功能非常强大,它适合于我们最常见的场景,当我们在模板页面中需要根据特定的条件来进行if分支判断来显示不同的内容时,采用field:array标签将给我们带来极大的方便。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/cms/10906.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/cms/10906.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定