如何在dedecms织梦中解决自定义表单内容列表编辑时地区显示为数字的问题?

avatar
作者
猴君
阅读量:0
要解决dedecs织梦自定义表单内容列表编辑联动地区显示为数字的问题,可以尝试以下方法:,,1. 打开/dede/templets/default/form_edit.htm文件。,2. 找到联动地区的下拉菜单代码,将其替换为以下代码:,,``html,,文本框,多行文本框,下拉框,单选框,复选框,列表框,数字框,,``,,3. 保存文件并刷新页面,现在联动地区应该显示为数字了。

在dedecms织梦自定义表单中,实现地区联动显示名称而不是数字的方法如下:

如何在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';

如何在dedecms织梦中解决自定义表单内容列表编辑时地区显示为数字的问题?

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.htmdiy_field_edit.htmdiy_list.htm文件,以及添加Getenums函数来处理地区名称的显示,完成这些步骤后,联动类型字段就能在后台和前台正确显示地区名称了。


如何在dedecms织梦中解决自定义表单内容列表编辑时地区显示为数字的问题?

Dedecms织梦自定义表单内容列表编辑联动地区显示为数字的解决方法

问题背景

在Dedecms织梦的自定义表单内容列表编辑中,当使用联动地区选择时,通常情况下地区名称会显示在列表中,有些用户希望地区显示为对应的数字代码,而不是地区名称。

解决方法

1、修改模板文件

打开Dedecms后台,找到自定义表单的模板文件。

定位到地区联动的显示部分,通常是<select>

2、修改数据绑定

<select>标签中,修改<option>标签的value属性,使其绑定到地区对应的数字代码上。

修改<option>标签的selected属性,确保正确显示默认选中的地区。

```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、添加函数处理

在织梦的函数文件中(通常是common.php),添加一个函数来处理地区数字代码到名称的转换。

```php

function getRegionNum($region) {

// 地区数字代码到名称的转换逻辑

$regionNames = array(

'110000' => '北京市',

'120000' => '天津市',

// 其他地区映射

);

return $regionNames[$region] ?? '未知地区';

}

```

5、测试与验证

保存所有修改后的文件,并在前台进行测试。

确保地区列表显示正确的数字代码,并且在内容列表中也能正确显示。

注意事项

在修改模板文件和函数时,确保备份原始文件,以防万一需要恢复。

在进行任何修改之前,了解Dedecms的版本和配置,以确保修改不会引起其他问题。

通过以上步骤,您可以在Dedecms织梦的自定义表单内容列表编辑中,将联动地区的显示方式从地区名称更改为对应的数字代码。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!