在使用Dedecms CMS时,有时会遇到后台无法正确显示联动选项的问题。即便解决了添加显示联动选项的难题,提交表单后,后台枚举值可能仍然只显示数字。本文将详细介绍如何解决这一问题,让提交到后台的数据能够以文字形式展示。
### 修改方法 为了实现这一目标,我们需要对Dedecms的相关文件进行修改。以下是具体步骤:
#### 第一步:修改 `diy_list.htm` 文件 1. 打开Dedecms后台目录下的 `templets/diy_list.htm` 文件。 2. 找到以下代码段:

else if($fielddata[1]=='addon')
{
    $fields[$field] = " 其它附件";
}
    
3. 在上述代码段下方插入以下代码:

// 联动类型显示修正开始
else if($fielddata[1]=='stepselect') 
{ 
    $db->Execute('me',"SELECT * FROM `dede_stepselect` WHERE itemname='{$fielddata[0]}'"); 
    while($arr = $db->GetArray(me)) 
    { 
        $egroup = $arr['egroup']; 
    } 
    $fields[$field] = Getenums("{$fields[$field]}",$egroup); 
}
    

#### 第二步:添加 `Getenums` 函数 1. 继续查找 `diy_list.htm` 文件中的 `{/dede:datalist}` 标签。 2. 在其下方插入以下代码:

=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];
        }
    }
}
?>
    

### 测试效果 完成上述修改后,保存文件并刷新后台页面。再次提交数据时,您会发现后台显示的不再是单纯的数字,而是对应的中文文字描述。 通过以上步骤,我们成功解决了Dedecms后台提交表单后仅显示数字的问题,实现了更加直观的文字展示效果。希望这篇教程对您有所帮助!