• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦dedecms自定义表单添加地区联动显示数字解决方法
    POST TIME:2021-05-23 02:54

    我们在开发织梦dedecms自定义表单时,有的时候,需要使用到联动的字段。尤其是调用地区的联动。但是在织梦自定义表单添加默认是没有字段为联动类型的选择。织梦58织梦模板做了一下二次开发,让自定义表单支持选择地区后,显示的地区名称。

    开发方法

    1、让织梦自定义表单,可添加联动类型的字段。

       打开 dede/templets/diy_field_add.htm 文件,找到:

        <!--div><input type='radio' name='dtype' id='dtype16' value="stepselect">联动类型</div-->

    修改为:

        <div><input type='radio' name='dtype' id='dtype16' value="stepselect">联动类型</div>

      同样,打开 dede/templets/diy_field_edit.htm 文件,找到:

        <option value="checkbox">Checkbox多选框</option>

      在其 下面 添加如下代码

        <option value="stepselect">联动类型</option>

     

    2、在回到自定义表单,添加关键词,发现联动类型可选了。这里以地区联动为例如下图:

    3、点击确定,保存即可,然后就是前台的调用,发现调用出来显示的是数字,而不是具体的地区的名称。

    解决地区联动调用显示数字的方法

    打开 找到dede/templets/diy_list.htm文件中,找到

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

      在其 下面 添加如下代码

    1
    2
    3
      else if($fielddata[1]=='stepselect')       { 
            $fields[$field] = Getenums("{$fields[$field]}",'nativeplace');
           }

      继续在该文件中,找到

        </form>

      在其 下面 添加如下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     <?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 = str_replace(".00",".",$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];
        }
        }
        }
        ?>

    完成。


    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!