在 DedeCMS 中,并没有一个叫做“提交表单插件”的独立插件,这个功能是通过其核心的“自定义表单”功能来实现的,这个功能非常强大和灵活,可以让你轻松创建各种类型的表单,用于收集用户反馈、在线报名、订单、留言等。

下面我将为你提供一个从入门到精通的完整指南,包括如何创建表单、如何在前台提交、以及如何管理和导出数据。
什么是 DedeCMS 自定义表单?
自定义表单是 DedeCMS 的一个核心功能,它允许你在网站前台创建一个由你自己定义的表单,当用户在前台填写并提交这个表单后,数据会被保存在网站的数据库中,你可以在网站后台查看、管理和导出这些数据。
常见用途:
- 在线报名:活动、会议、课程报名。
- 产品询价:用户留下联系方式和需求。
- 留言/反馈:比系统自带的留言板更灵活,字段更多。
- 订单收集:简单的在线订单。
- 问卷调查:收集用户意见。
如何创建一个自定义表单?(后台操作)
这是整个过程的核心步骤,我们以创建一个“在线报名”表单为例。

第1步:进入自定义表单管理
登录你的 DedeCMS 后台,在左侧菜单栏找到:
核心 -> 自定义表单
点击进入后,默认是“自定义表单管理”页面,这里会列出你所有已经创建的表单。
第2步:添加新的自定义表单
点击页面右上角的 增加自定义表单 按钮。
你会看到需要填写的表单字段,请务必仔细填写:
-
表单名称:
- 作用:在后台识别这个表单的唯一名称,不会显示在前台。
- 示例:
在线报名表或activity_signup。
-
表单提示:
- 作用:显示在表单列表页面顶部的提示文字,方便后台管理。
- 示例:
用于收集用户参加活动的报名信息。
-
目录选择:
- 作用:选择一个栏目,提交成功后可以自动跳转到这个栏目页面,通常选择一个“感谢页面”或“首页”。
- 示例:选择一个你事先建好的“报名成功”栏目。
-
列表模板:
- 作用:非常重要! 这是定义前台表单样式的文件,你需要在这里编写 HTML 代码,并插入 DedeCMS 的表单标签。
- 示例:
templets/default/form_activity_signup.htm(这个文件需要你手动创建和上传)。
-
发布模板:
- 作用:用于定义用户提交成功后,跳转页面的模板,通常可以和“列表模板”共用,或者使用一个简单的静态感谢页面。
- 示例:可以留空,使用默认的提示,或者指向一个静态的感谢页面 HTML 文件。
-
默认排序:
- 作用:在后台查看数据列表时的默认排序方式。
- 示例:
id DESC(按提交时间倒序)。
-
表单字段:
- 作用:这是最核心的部分,定义你的表单里包含哪些输入项,每一行代表一个字段。
- 格式:
字段名|字段类型|默认值|最大长度|是否为空|提示文字 - 示例:
name|text||50|否|姓名tel|text||20|否|联系电话email|text||50|是|电子邮箱activity_date|date||10|否|参加日期remarks|textarea||255|是|备注ip|text||15|是|IP地址(这个字段是固定的,用于记录提交者的IP)
-
是否启用:
- 作用:选择“是”才能让前台用户看到并提交表单。
- 示例:
是
-
是否验证码:
- 作用:为了防止恶意提交,建议开启。
- 示例:
是
填写完毕后,点击 确定 按钮保存,一个自定义表单就在后台创建好了。
如何制作前台表单页面?(前端制作)
上一步中,你指定了一个“列表模板”,templets/default/form_activity_signup.htm,现在你需要创建这个文件,并编写其内容。
-
创建文件: 在你的网站模板目录
templets/default/下,新建一个文件,命名为form_activity_signup.htm。 -
编写代码: 用代码编辑器打开这个新文件,写入以下代码,这是一个标准的 HTML 表单,关键在于
dede:form标签和{dede:field}标签的使用。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">在线报名</title>
</head>
<body>
<h1>活动报名表</h1>
<p>请填写以下信息完成报名:</p>
<!--
dede:form 标签是核心,它负责生成表单和处理提交。
- actionurl: 指向表单处理程序,通常为 "/plus/diy.php"
- method: 提交方式,通常是 "post"
- enctyp: 如果有文件上传,需要设置为 "multipart/form-data"
- name: 表单的 name 属性
-->
{dede:form name='myform' actionurl='/plus/diy.php' method='post' enctype='multipart/form-data'}
<!--
{dede:field} 标签用于输出你在后台定义的表单字段。
- 每个字段一个 {dede:field} 标签。
- 'function' 属性可以调用函数,比如对日期格式化。
-->
<div>
<label for="name">姓名:</label>
{dede:field name='name' /}
</div>
<div>
<label for="tel">联系电话:</label>
{dede:field name='tel' /}
</div>
<div>
<label for="email">电子邮箱:</label>
{dede:field name='email' /}
</div>
<div>
<label for="activity_date">参加日期:</label>
{dede:field name='activity_date' /}
</div>
<div>
<label for="remarks">备注:</label>
{dede:field name='remarks' /}
</div>
<!--
隐藏字段,非常重要!
- diyid: 必须填写,值为你在后台创建的表单的 ID,你可以在后台自定义表单列表页面看到这个 ID。
- action: 'post' 表示提交数据。
-->
<input type="hidden" name="diyid" value="在这里填入你的表单ID" />
<input type="hidden" name="action" value="post" />
<!--
验证码,如果后台开启了验证码,这里必须加上。
- validate: 必须设置为 'validate'
-->
{dede:validate/}
<div>
<label>验证码:</label>
{dede:validate/}
</div>
<div>
<button type="submit">提交报名</button>
</div>
{/dede:form}
</body>
</html>
关键点解释:
{dede:form}:这是整个表单的容器,它会自动生成<form>{dede:field name='xxx' /}:这是生成具体表单单行输入框(如文本框、日期选择器)的标签。name属性的值必须和你在后台“表单字段”中定义的字段名完全一致。- 隐藏字段
diyid:这是最容易出错的地方! 你必须去后台“自定义表单管理”页面找到你刚创建的表单,记下它的 ID,然后把这个 ID 填入到value属性中,没有这个 ID,表单不知道数据该提交给谁。{dede:validate/}:用于生成验证码输入框和验证码图片,如果后台开启了验证码,前台就必须有这个标签。
如何管理和查看提交的数据?
-
进入数据管理: 在后台
核心->自定义表单页面,点击你创建的表单名称(在线报名表”),进入该表单的数据管理页面。 -
查看数据: 你可以看到所有用户提交的数据列表,包括提交时间、IP地址以及你定义的所有字段。
-
筛选和搜索: 你可以对数据进行排序,或者根据某个字段的关键词进行搜索,方便快速找到特定记录。
-
导出数据: DedeCMS 自带数据导出功能,在数据管理页面,你可以选择将数据导出为 Excel (
.xls) 或 CSV (.csv) 格式,方便进行 offline 分析和处理。
常见问题与解决方案
-
问题:提交后页面跳转错误或提示“提交失败”。
- 原因:最常见的原因是
diyid隐藏字段的值填错了,或者后台的“目录选择”指定的栏目不存在。 - 解决:请仔细核对
diyid和目标栏目 ID。
- 原因:最常见的原因是
-
问题:前台表单样式错乱。
- 原因:
{dede:form}和{dede:field}标签默认会生成一些样式,可能与你的网站风格不符。 - 解决:你可以通过 CSS 来覆盖这些默认样式,或者直接在
form_activity_signup.htm文件中内嵌 CSS 代码来控制表单的外观。
- 原因:
-
问题:需要增加新的字段怎么办?
- 原因:需求变更。
- 解决:无法直接在后台修改,你需要:
- 在后台“自定义表单管理”页面,点击
修改自定义表单。 - 在“表单字段”区域,按照
字段名|字段类型|...的格式,在末尾添加新的字段定义。 - 保存后,必须修改你的前台模板文件
form_activity_signup.htm,在相应位置添加新的{dede:field name='新字段名' /}- 注意:如果表单中已有数据,新增的字段在旧数据中将为空。
- 在后台“自定义表单管理”页面,点击
DedeCMS 的自定义表单功能虽然不是传统意义上的“插件”,但其灵活性和强大性足以满足绝大多数网站的数据收集需求,掌握它的核心流程:
- 后台:创建表单 -> 定义字段 -> 设置模板。
- 前台:制作模板文件 -> 编写
{dede:form}和{dede:field}标签 -> 设置diyid。 - 数据:后台查看、搜索、导出。
只要理解了这三个步骤,你就能随心所欲地创建各种表单了。
