织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法

2017-09-13dedecms教程
3046

 我们在做完织梦自定义表单做城市二级三级联动后,前台页面显示没有问题,不过在后台获得的数据联动类型只显示枚举值,

织梦城市联动

在网上找了很多方法都不行,其实都是只说了一半,没有说全,下面我就对这些方法汇总再给大家讲一下。
织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法:

1、找到dede/templets/ddiy_list.htm文件中(大约在41行): 
 

else if($fielddata[1]=='addon')
{
    $fields[$field] = "<a href='{$fields[$field]}' target='_blank'><img src='images/channeladd.gif' border='0' /> 其它附件</a>";
}


在下面加入:
 

//联动类型显示修正开始

            else if($fielddata[1]=='stepselect')
            {
                $db->Execute('me',"SELECT * FROM `wmd_stepselect` WHERE egroup='{$field}'");
                while($arr = $db->GetArray(me))
                {
                    $egroup = $arr['egroup'];
                }
                $fields[$field] = Getenums("{$fields[$field]}",$egroup);
            }

//联动类型显示修正结束



在本文件中继续找到: {/wmd:datalist}
在下面加入一下代码:
 

<?php
function Getenums($evalue = 0, $egroup)
{
    if (!isset($GLOBALS['em_' . $egroup . 's'])) {
        $cachefile = DEDEDATA . '/enums/' . $egroup . '.php';
        if (!file_exists($cachefile)) {
            require_once DEDEINC . '/enums.func.php';
            WriteEnumsCache();
        }
        if (!file_exists($cachefile)) {
            return '';
        } else {
            require_once $cachefile;
        }
    }
    if ($evalue >= 500) {
        if ($evalue % 500 == 0) {
            return isset($GLOBALS['em_' . $egroup . 's'][$evalue]) ? $GLOBALS['em_' . $egroup . 's'][$evalue] : '';
        } else {
            if (preg_match('#([0-9]{1,})\\.([0-9]{1,})#', $evalue, $matchs)) {

$esonvalue = $matchs[1];
$etopvalue = $esonvalue - $esonvalue % 500;
$esecvalue = preg_replace('/(?<=\.)[0]+/', '', $evalue);

$GLOBALS['em_' . $egroup . 's'][$etopvalue] = empty($GLOBALS['em_' . $egroup . 's'][$etopvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$etopvalue];

$GLOBALS['em_' . $egroup . 's'][$esonvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esonvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esonvalue];

$GLOBALS['em_' . $egroup . 's'][$esecvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esecvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esecvalue];

return $GLOBALS['em_' . $egroup . 's'][$etopvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esonvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esecvalue];
            }
			else 
			{
$elimit = $evalue % 500;
$erevalue = $evalue - $elimit;
$GLOBALS['em_' . $egroup . 's'][$erevalue] = empty($GLOBALS['em_' . $egroup . 's'][$erevalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$erevalue];
$GLOBALS['em_' . $egroup . 's'][$evalue] = empty($GLOBALS['em_' . $egroup . 's'][$evalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$evalue];
return $GLOBALS['em_' . $egroup . 's'][$erevalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$evalue];
            }
        }
    }
}
?>



按照上面的方法修改完成后即可显示!
 

The End
联动 自定义表单

相关推荐

织梦dedecms跨域怎么提交自定义表单
1、在织梦文件中找到/plus/diy.php文件,顶部加上跨域请求代码: header(Access-Control-Allow-Origin:*); //支持全域名访问,不安全,部署后需要固定限制为客户端网址 header(Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE); //支持的http 动作 he...
2021-08-23 dedecms教程
201

织梦DEDECMS首页调用自定义表单数据
织梦DEDECMS首页调用自定义表单数据 直接输入下面代码: {wmd:loop table=wmd_diyform3 sort=id row=5 if=ifcheck=1} li [field:name/]/li {/wmd:loop} 其中 wmd_diyform3 是自定义数据表,注意这个调用是根据你后台建立的自定义表单表名 if=ifcheck=1...
2021-08-09 dedecms教程
179

织梦dedecms自定义表单发送邮件(QQ、163、126邮箱)教程
环境要求 (硬性指标,不支持就无法发送) : 主机465端口是开启和放行的 php扩展openssl是开启的 php扩展sockets是开启的 虚拟主机必须开启fsockopen函数 阿里云虚拟主机开启fsockopen函数 1、QQ邮箱 或者 163邮箱 126邮箱 开启SMTP服务,拿到授权码,根据...
2021-03-11 dedecms教程
76

织梦在自定义表单中获取提交者的IP地址信息
有时候我们需要在自定义表单中获取访问者的ip地址信息,那么要怎么实现呢? 1、首先我们在后台自定义表单中建立一个字段为:uip 2、在自定义表单中的写法如下,把uip这个字段作为隐藏字段: input type=hidden name=uip id=uip value=script type=text/javas...
2019-12-31 dedecms教程
72

DedeCMS的自定义表单增加"全选/全不选"的功能按钮
我们先看看效果图: 织梦自定义表单没有批量选择的功能,给我们管理带来很大不便,如果需要加上全选/全不选的功能,步骤如下: 从/dede/templets找到diy_list.htm并打开: 1、在57行处colspan=3改为colspan=5 2、58行处添加以下代码: labelinput type=butto...
2018-04-25 dedecms教程
161

织梦dedecms系统修改后台自定义表单列表为横排显示的办法
dede织梦系统自定义表单提交内容后,在后台显示的方式比较别扭,我们都习惯横排显示,这里介绍怎么修改成横排显示。 1、找到后台自定义表单的模板,dede/templets/diy_list.htm 2、首先把代码 table width=98% border=0 cellpadding=1 cellspacing=1 align=c...
2018-04-25 dedecms教程
312