/dede/templets/default/form_edit.htm
文件。,2. 找到联动地区的下拉菜单代码,将其替换为以下代码:,,``html,,文本框,多行文本框,下拉框,单选框,复选框,列表框,数字框,,
``,,3. 保存文件并刷新页面,现在联动地区应该显示为数字了。在dedecms织梦自定义表单中,实现地区联动显示名称而不是数字的方法如下:
修改文件以添加联动类型字段
1、修改dede/templets/diy_field_add.htm文件
打开文件,找到以下代码:
```html
<div class='nw'><input type='radio' class='np' name='dtype' id='dtype16' value="stepselect">联动类型</div>
```
将其注释去掉,使其变为:
```html
<div class='nw'><input type='radio' class='np' name='dtype' id='dtype16' value="stepselect">联动类型</div>
```
2、修改dede/templets/diy_field_edit.htm文件
打开文件,找到以下代码:
```html
<option value="checkbox">Checkbox多选框</option>
```
在其下面添加如下代码:
```html
<option value="stepselect">联动类型</option>
```
3、保存修改并刷新页面
保存对这两个文件的修改后,回到自定义表单界面,你会发现已经可以选择“联动类型”了。
解决地区联动调用显示数字的问题
1、修改dede/templets/diy_list.htm文件
打开文件,找到以下代码:
```php
else if($fielddata[1]=='addon')
{
$fields[$field] = "<a href='{$fields[$field]}' target='_blank'><img src='images/channeladd.gif' border='0' /> 其它附件</a>";
}
```
在其下面添加如下代码:
```php
else if($fielddata[1]=='stepselect')
{
$fields[$field] = Getenums("{$fields[$field]}",'nativeplace');
}
```
2、继续在该文件中添加函数定义
找到</form>
标签,在其下面添加如下代码:
```php
<?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("#([09]{1,})\.([09]{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];
}
}
}
?>
```
3、完成修改并测试
保存所有修改,然后测试自定义表单,确保地区联动能够正确显示地区名称而不是数字。
相关问答FAQs
问题1:为什么在自定义表单中选择了联动类型但前台仍然显示数字?
答:这是因为织梦默认没有提供联动类型的选项,需要通过二次开发来添加联动类型字段,如果只是选择了联动类型而没有进行相应的代码修改,前台仍然会显示数字,按照上述步骤修改文件并添加相应的代码即可解决这个问题。
问题2:如何确保联动类型字段在后台和前台都能正确显示地区名称?
答:要确保联动类型字段在后台和前台都能正确显示地区名称,需要在自定义表单中选择联动类型,并在模板文件中添加相应的处理代码,具体步骤包括修改diy_field_add.htm
、diy_field_edit.htm
和diy_list.htm
文件,以及添加Getenums
函数来处理地区名称的显示,完成这些步骤后,联动类型字段就能在后台和前台正确显示地区名称了。
Dedecms织梦自定义表单内容列表编辑联动地区显示为数字的解决方法
问题背景
在Dedecms织梦的自定义表单内容列表编辑中,当使用联动地区选择时,通常情况下地区名称会显示在列表中,有些用户希望地区显示为对应的数字代码,而不是地区名称。
解决方法
1、修改模板文件
打开Dedecms后台,找到自定义表单的模板文件。
定位到地区联动的显示部分,通常是 2、修改数据绑定 在 修改 ```html <select name="region" id="region"> <option value="110000" selected>北京市</option> <option value="120000">天津市</option> <!其他地区选项 > </select> ``` 3、修改数据输出 在内容列表的模板文件中,找到显示地区的地方。 将输出地区名称的地方修改为输出地区对应的数字代码。 ```html <td>{field:region}</td> <!原始输出地区名称 > <td>{field:region|getRegionNum=$region}</td> <!修改后输出地区代码 > ``` 4、添加函数处理 在织梦的函数文件中(通常是 ```php function getRegionNum($region) { // 地区数字代码到名称的转换逻辑 $regionNames = array( '110000' => '北京市', '120000' => '天津市', // 其他地区映射 ); return $regionNames[$region] ?? '未知地区'; } ``` 5、测试与验证 保存所有修改后的文件,并在前台进行测试。 确保地区列表显示正确的数字代码,并且在内容列表中也能正确显示。 注意事项 在修改模板文件和函数时,确保备份原始文件,以防万一需要恢复。 在进行任何修改之前,了解Dedecms的版本和配置,以确保修改不会引起其他问题。 通过以上步骤,您可以在Dedecms织梦的自定义表单内容列表编辑中,将联动地区的显示方式从地区名称更改为对应的数字代码。<select>
<select>
标签中,修改<option>
标签的value
属性,使其绑定到地区对应的数字代码上。<option>
标签的selected
属性,确保正确显示默认选中的地区。common.php
),添加一个函数来处理地区数字代码到名称的转换。