第一步:创建自定义表单(后台操作)
这是所有工作的基础,你需要先在后台定义好表单需要包含哪些字段。

-
登录DedeCMS后台:使用你的管理员账号登录网站后台。
-
进入表单管理:
- 在左侧菜单栏中找到 【核心】 -> 模型管理】。
- 模型管理页面,点击顶部的 【自定义表单】 选项卡。
-
添加新的表单:
- 点击 【增加一个新的自定义表单】 按钮。
- 表单名称:给你的表单起一个容易识别的名字,“在线报名”、“产品咨询” 等,这个名字不会在前台显示,仅用于后台管理。
- 数据表:系统会自动生成一个表名,如
dede_addonxx,你无需修改。 - 默认表单模板:可以暂时留空,稍后我们再创建前台模板。
- 列表模板:可以暂时留空,如果你想在前台展示已提交的表单数据,可以在这里设置。
- 点击 【保存】 按钮。
-
添加表单字段(最关键的一步):
(图片来源网络,侵删)-
保存后,你会进入该表单的字段管理界面,点击 【添加新字段】。
-
你需要为每个字段逐一设置,下面以一个常见的“在线报名”表单为例,创建几个字段:
-
字段名:
name(小写,不要用中文) -
字段类型:
单行文本
(图片来源网络,侵删) -
字段说明:
姓名(这个会作为表单的提示文字) -
前台提示文字:
请输入您的姓名 -
是否必填:
是 -
默认值:留空
-
数据校验:
textLength(限制文本长度) -
显示顺序:
1 -
点击 【保存】。
-
字段名:
tel -
字段类型:
单行文本 -
字段说明:
联系电话 -
前台提示文字:
请输入您的联系电话 -
是否必填:
是 -
数据校验:
number(只能输入数字) -
显示顺序:
2 -
点击 【保存】。
-
字段名:
course -
字段类型:
下拉菜单 -
字段说明:
报名课程 -
前台提示文字:
请选择您要报名的课程 -
选项值:
网页设计,PHP开发,Java开发(用英文逗号隔开) -
是否必填:
是 -
显示顺序:
3 -
点击 【保存】。
-
字段名:
content -
字段类型:
多行文本(文本区域) -
字段说明:
备注信息 -
前台提示文字:
请输入您的备注信息 -
是否必填:
否 -
显示顺序:
4 -
点击 【保存】。
-
字段名:
ip -
字段类型:
单行文本 -
字段说明:
IP地址 -
系统默认字段:勾选此项。(非常重要!这个字段用于自动记录提交者的IP地址)
-
是否显示:
否(在前台不显示) -
显示顺序:
99(放到最后) -
点击 【保存】。
-
-
-
完成创建:
- 重复以上步骤,添加完所有需要的字段后,你的自定义表单就创建好了,你可以在后台的 【自定义表单】 列表中看到它,并点击进入查看和管理已提交的数据。
第二步:调用自定义表单(前台页面)
我们需要在前台页面创建一个HTML表单,让用户可以填写并提交数据。
-
创建前台模板文件:
- 在你的网站模板目录(通常是
/templets/default/或你自定义的模板目录)下,创建一个新的HTML文件,baoming.html。
- 在你的网站模板目录(通常是
-
编写表单HTML代码:
- 在
baoming.html文件中,编写一个标准的HTML表单,关键点在于:<form>标签的属性:action: 指向DedeCMS处理表单提交的脚本plus/diy.php。method: 必须是post。enctype: 如果有文件上传,需要设置为multipart/form-data;普通表单可以不写。
- 每个输入字段的
name属性:必须与你在后台创建的“字段名”完全一致(name,tel,course)。 - 隐藏字段:
diyid: 表单的ID,你可以在后台自定义表单列表中找到对应的ID,{dede:global.diyid/}。do: 必须是post。dede_fields: 用于将前台字段与后台字段关联起来,并指定类型,格式为前台字段名1=后台字段类型1,前台字段名2=后台字段类型2。name=text,tel=text,course=select,content=textarea。dede_fieldshide: 用于隐藏不需要用户填写但需要提交的字段,例如我们刚才创建的ip字段,格式为隐藏字段名。
- 在
-
完整代码示例 (
baoming.html):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">在线报名</title>
</head>
<body>
<h2>在线报名表单</h2>
<form action="/plus/diy.php" enctype="multipart/form-data" method="post">
<input type="hidden" name="diyid" value="1" /> <!-- 1替换成你的表单ID -->
<input type="hidden" name="do" value="post" />
<input type="hidden" name="dede_fields" value="name,text,tel,text,course,select,content,textarea" />
<input type="hidden" name="dede_fieldshide" value="ip" />
<p>
<label for="name">姓名:</label>
<input type="text" name="name" id="name" required />
</p>
<p>
<label for="tel">联系电话:</label>
<input type="text" name="tel" id="tel" required />
</p>
<p>
<label for="course">报名课程:</label>
<select name="course" id="course" required>
<option value="">请选择</option>
<option value="网页设计">网页设计</option>
<option value="PHP开发">PHP开发</option>
<option value="Java开发">Java开发</option>
</select>
</p>
<p>
<label for="content">备注信息:</label>
<textarea name="content" id="content" rows="5" cols="30"></textarea>
</p>
<p>
<input type="submit" name="submit" value="提 交" />
</p>
</form>
</body>
</html>
代码解释:
action="/plus/diy.php":告诉表单数据提交给DedeCMS的通用处理程序。name="diyid" value="1":1是你在后台创建的“在线报名”这个自定义表单的ID,你可以在后台自定义表单列表中查看每个表单的ID。name="dede_fields" value="...":这是核心关联。name=text:前台name字段,对应后台的text(单行文本) 类型。course=select:前台course字段,对应后台的select(下拉菜单) 类型。content=textarea:前台content字段,对应后台的textarea(多行文本) 类型。
name="dede_fieldshide" value="ip":将后台的ip字段隐藏,并随表单一起提交。
第三步:创建栏目并关联模板
为了让这个页面能被访问,你需要创建一个栏目。
-
在后台进入【频道模型】->【栏目管理】。
-
增加一个顶级栏目:
- 栏目名称:
在线报名 - :选择
使用自定义表单 - 选择表单:从下拉菜单中选择你刚才创建的“在线报名”表单。
- 列表模板:可以不填或填写一个显示已提交信息的模板。
- 发布位置:选择一个你希望显示这个栏目的位置。
- 选择自定义表单模板:点击后面的“选择”按钮,在弹出的窗口中选择你刚刚创建的
baoming.html模板文件。 - 点击 【确定】 保存。
- 栏目名称:
-
前台访问:
- 现在你可以通过网站首页的导航链接访问这个“在线报名”栏目页面了。
- 用户填写表单并提交后,数据会自动保存到数据库中,你可以在后台 【自定义表单】 -> 【在线报名】 中查看所有提交的记录。
高级技巧与注意事项
-
自定义提交后的提示:
- 默认提交后会跳转到
/plus/diy.php页面,并显示一个默认的成功提示。 - 你可以自定义这个提示页面,在
/plus/diy.php文件中找到$bkmsg = '发布成功,请等待管理员处理!';这一行,修改这里的文字即可。 - 你也可以让它跳转到任意指定页面,在
$gourl = '-';这一行,将 改为你想要跳转的网址,'/success.html'。
- 默认提交后会跳转到
-
表单样式:
baoming.html只是一个纯功能性的HTML,你可以用CSS为它添加样式,使其更美观,在<head>标签中引入你的CSS文件即可。
-
数据安全:
- 自定义表单没有内置的验证码功能,很容易被机器人恶意提交,导致垃圾信息。
- 强烈建议你为表单添加验证码,可以使用DedeCMS的验证码标签
{dede:vcode/}插入到表单中,并确保在后台系统基本参数中开启了验证码功能。
-
邮件提醒:
如果你希望在收到新表单时能收到邮件通知,可以在后台自定义表单的字段管理中,找到“发布邮件提醒”选项,并配置好邮件接收人,但这部分功能可能因DedeCMS版本不同而有所差异,有时需要手动修改代码或使用插件实现。
通过以上三个步骤,你就可以成功地在DedeCMS中创建并调用一个功能完整的自定义表单了。
