欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dedecms模板页面怎么调用获取数组值?foreach dede:foreach

如果在织梦dedecms的某个数据表的字段中存入的是一个数组,那么在核心页面获取到这个字段的值以后,如何在模板页面进行循环 展示出想要展示的内容呢?

最满意答案

 

dedecms有自己的模板语法,你下载个dedecms模板手册里面有详细教程,

我使用的时候也没有嵌套的。 如果在arc.archives.class.php文件中获得 一个数组 我这样赋值
 $this->Fields['hotelname'] = array('0','12','13');

那么我在模板文件是不是应该是写
{dede:foreach array='hotelname'}[field:key/] [field:value/]{/dede:foreach}

{dede:arclist}
[field:array function='functionName("@me")'/]
{/dede:arclist}
直接将要你处理的字段值转给一个函数,然后在函数里面你想怎么显示就怎么显示了
“@me”代表传入该函数的值。

还有一种方法是自定义标签,也可以试试
来自 https://baike.1688.com/doc/view-d35950458.html


有关dede静态模 板类dede:foreach的行使

TAG: DEDE教程 DEDECMS模板 dede模 时间:2016-05-14 02:35

 

方才打仗织梦,就从基本看起,但愿各人不要见笑,多多勉励啊 呵呵
在测试的时辰发明静态模板类内里的
{dede:foreach array=”数组名”} [field:key/] [field:value/] {/dede:foreach}这本标签总不能正常行使,执行后老是返回 [field:key/] [field:value/] [field:key/] [field:value/] ….n个“[field:key/] [field:value/] ”而不是正在的数据,在网上搜了搜,功效大部门都是转载织梦体系的原装辅佐文档内里的资料,没有声名此题目,这里有人也碰着了一样的题目,原来想回覆他来,然则我是新人,他地址的版块我无权回覆,就发一个新帖了,呵呵,扯远了,书归正传!

为什么会有这样的结果呢,数组名配置后是可以遍历的,并且遍历的次数也是对了,就是数据不能正常表现

必定是那边理会错误了,

顺着思绪往下找,

最后在include/dedetag.class.php文件中的第578行和579行(版本纷歧样也许差异,在该文件的AssignSysTag()要领体内里)找到了谜底!

$istr .= preg_replace(“/\[field:key([\r\n\t\f ]+)\/\]/is”,$k,$this->CTags[$i]->InnerText);
$str .= preg_replace(“/\[field:value([\r\n\t\f ]+)\/\]/is”,$v,$istr);

题目就在正则表达式上,首要是这部门([\r\n\t\f ]+)

声名在 [field:key 与 /] 之间可以包括换行、制表符、空格,可是不能什么都没有

也就是说 [field:key/]是差池的

必需是

[field:key /](空格的)

[field:key /](制表符的)

[field:key
/](换行的)

这样就办理题目了,我测试是可以的。

=============================
但愿对必要的人可以办理题目!

来自  http://www.dedecms51.com/a/dedecmsjiaocheng/anzhuangshiyong/2016/0514/4713.html

普通分类: