- 后台创建表单:在织梦后台设置表单的字段、样式和提交规则。
- 前台调用表单:在前台页面中,通过代码将你创建好的表单显示出来,并处理用户提交。
第一步:在织梦后台创建自定义表单
进入表单管理界面
登录你的织梦后台,在左侧菜单栏中找到: 核心 -> 自定义表单
点击进入后,你会看到一个管理界面,默认是空的。

创建新表单
点击右上角的 “增加自定义表单” 按钮。
填写表单基本信息
在弹出的页面中,你需要填写以下几个关键信息:
- 表单名称:给你的表单起一个名字,方便在后台识别。“在线报名”、“产品咨询”、“留言反馈”,这个名字不会在前台显示。
- 默认表单模板:这是表单提交成功后,用户看到的页面模板,你可以使用织梦默认的,也可以自己创建一个HTML模板文件,上传到
/templets/目录下,然后在这里填写路径,/templets/default/submit_success.htm。 - 后台列表模板:在后台“自定义表单”管理页面中,每条记录显示的样式,通常使用默认即可。
- 后台列表行数:每页显示多少条记录。
- 是否开启:选择“是”来启用这个表单。
添加表单字段(最关键的一步)
填写完基本信息后,向下滚动页面,你会看到 “增加表单字段” 的区域,这里是定义你想要用户填写哪些内容的地方。
点击 “增加字段”,开始逐个添加。
字段类型选择与常用字段设置:
| 字段类型 | 说明 | 常用场景 | 关键设置 |
|---|---|---|---|
| 文本域 | 多行文本输入框,可以输入较长的内容。 | 详细留言、自我介绍、备注等。 | 名称:message (英文,用于后台识别) 字段提示:请详细描述您的问题或需求 (前台显示给用户的提示) |
| 单行文本 | 单行文本输入框。 | 姓名、电话、邮箱、公司名称等。 | 名称:name 字段提示:您的姓名 |
| 数字 | 只能输入数字的文本框。 | 年龄、数量、工号等。 | 名称:age 字段提示:您的年龄 |
| 下拉框 | 提供一个下拉列表供用户选择。 | 省份、学历、服务类型等。 | 名称:province 字段提示:您所在的省份 选项:北京,上海,广州,深圳 (用英文逗号分隔) |
| 单选框 | 提供多个选项,但用户只能选择一个。 | 性别、服务等级等。 | 名称:gender 字段提示:您的性别 选项:男,女 |
| 复选框 | 提供多个选项,用户可以同时选择多个。 | 兴趣爱好、需要的服务等。 | 名称:hobby 字段提示:您的兴趣爱好 选项:阅读,运动,音乐,旅行 |
| 附件 | 允许用户上传文件。 | 上传简历、作品集、图片等。 | 名称:resume 字段提示:请上传您的简历 默认值:可以设置允许上传的文件类型,如 rar,zip,doc,docx |
字段设置详解:
- 字段名称:非常重要,必须是英文,如
name,tel,email,这个名称会作为数据库表的字段名,在后续的模板调用和邮件发送中都会用到。 - 字段提示:在前台表单中,作为
<label>显示给用户,引导用户填写。 - 默认值:可以为某些字段设置一个默认的选项或文本。
- 是否必填:勾选此项后,用户提交表单时,该字段如果没有填写,将无法提交,并会提示用户。
- 是否显示:通常都勾选“是”,让该字段在前台显示。
- 控件排列:选择
left(左对齐)或right(右对齐)。
示例:创建一个“在线报名”表单
- 表单名称:
在线报名 - 增加字段:
- 字段类型:单行文本
- 字段名称:
name - 字段提示:
姓名 - 是否必填:是
- 字段名称:
- 字段类型:单行文本
- 字段名称:
tel - 字段提示:
联系电话 - 是否必填:是
- 字段名称:
- 字段类型:单行文本
- 字段名称:
email - 字段提示:
电子邮箱 - 是否必填:否
- 字段名称:
- 字段类型:下拉框
- 字段名称:
course - 字段提示:
意向课程 - 选项:
网站开发,UI设计,新媒体运营 - 是否必填:是
- 字段名称:
- 字段类型:文本域
- 字段名称:
remark - 字段提示:
备注信息 - 是否必填:否
- 字段名称:
- 字段类型:单行文本
保存表单
填写完所有字段后,点击底部的 “保存” 按钮,织梦会自动在数据库中创建一个对应的数据表(dede_addonxx,xx是数字),用于存储用户提交的数据。
第二步:在前台页面调用表单
现在表单已经在后台创建好了,我们需要在前台的一个页面上把它显示出来。
创建前台模板文件
在你的模板目录(/templets/default/)下,创建一个新的HTML文件,form.htm,这个文件就是用来显示表单的。
在模板文件中编写代码
打开 form.htm,将以下代码粘贴进去,并根据你的表单进行修改。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">在线报名</title>
</head>
<body>
<h2>在线报名表单</h2>
{dede:php}
// 获取当前表单的ID,这个ID在后台自定义表单列表页的链接中可以看到
// 在列表中点击“编辑”,URL可能是 ...?dopost=edit&aid=1
// 这里的 aid=1 就是表单ID
$formid = 1; // <--- 请务必修改成你的表单ID
// 调用自定义表单,生成HTML代码
echo $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id = $formid"); // 这句是错的,只是为了演示获取ID,正确方法见下方
// 正确的调用方式是直接使用标签
{/dede:php}
<!-- 这是调用自定义表单的核心标签 -->
{dede:myform name='在线报名'}
<!-- 循环输出表单中的每一个字段 -->
{dede:field name='body'/}
{/dede:myform}
<!-- 如果想手动控制表单样式,可以使用下面的方法,更灵活 -->
<!--
<form action="/plus/diy.php" enctype="multipart/form-data" method="post">
<input type="hidden" name="action" value="post" />
<input type="hidden" name="diyid" value="1" /> <!-- 1 是你的表单ID -->
<input type="hidden" name="do" value="2" />
<div>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" />
</div>
<div>
<label for="tel">联系电话:</label>
<input type="text" id="tel" name="tel" />
</div>
<div>
<label for="course">意向课程:</label>
<select id="course" name="course">
<option value="">请选择</option>
<option value="网站开发">网站开发</option>
<option value="UI设计">UI设计</option>
<option value="新媒体运营">新媒体运营</option>
</select>
</div>
<div>
<label for="remark">备注信息:</label>
<textarea id="remark" name="remark" rows="5" cols="30"></textarea>
</div>
<button type="submit">提交</button>
</form>
-->
</body>
</html>
代码解释:
-
使用
{dede:myform}标签(简单快捷){dede:myform name='在线报名'}:name的值必须和你后台创建的“表单名称”完全一致。{dede:field name='body'/}:这个标签会自动生成包含所有你定义的字段的HTML代码,并自带基本的CSS样式,你可以在后台的“自定义表单” -> “修改” -> “前台表单模板”中修改这个生成的HTML结构。
-
手动编写HTML(灵活,推荐)
<form action="/plus/diy.php" ...>:表单的提交地址是固定的,为/plus/diy.php。name="diyid":这个隐藏字段的value必须是你的自定义表单在数据库中的ID,如何找到这个ID?- 在后台“自定义表单”列表中,鼠标移动到你创建的表单那一行。
- 浏览器左下角会显示链接,
...?dopost=edit&aid=1,这里的aid=1就是ID。
name="字段名称":<input>,<select>,<textarea>的name属性,必须和你后台设置的字段名称(英文)完全一致,这是提交的数据能正确保存到对应字段的关键。enctype="multipart/form-data":如果你的表单中有“附件”类型的字段,这个属性是必须的。
创建提交成功后的页面
在第一步中,你设置了“默认表单模板”,你需要创建这个模板文件。
- 在模板目录(
/templets/default/)下,创建一个文件,submit_success.htm。 - 在这个文件里,你可以写一些提交成功后的提示信息,
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>提交成功</title> </head> <body> <h1>提交成功!</h1> <p>感谢您的报名,我们会尽快与您联系。</p> <p> [<a href="/">返回首页</a>] </p> </body> </html> - 回到后台“自定义表单”的修改页面,将“默认表单模板”的路径设置为
/templets/default/submit_success.htm。
在网站栏目或首页中调用
你可以在网站的任何地方(比如首页、某个内容页的栏目)通过链接指向你刚刚创建的 form.htm 页面。
在首页的某个位置添加一个链接:
<a href="/form.htm">点击在线报名</a>
第三步:管理与查看提交的数据
用户提交表单后,你可以在后台查看和管理这些数据。
- 登录织梦后台。
- 进入 核心 -> 自定义表单。
- 你会看到你创建的表单列表,点击 “数据管理”。
- 你可以看到所有用户提交的记录,支持按条件搜索、删除、修改等操作。
总结与常见问题
-
表单提交后内容为空?
- 检查前台表单控件的
name属性是否和后台设置的“字段名称”完全一致(区分大小写)。 - 检查
form标签的action是否为/plus/diy.php。 - 如果有附件,检查
enctype属性是否设置正确。
- 检查前台表单控件的
-
如何让表单更美观?
- 方法一:修改后台“自定义表单” -> “修改” -> “前台表单模板”中的HTML结构,并为其添加CSS样式。
- 方法二:推荐使用手动编写HTML的方法,这样你可以完全控制表单的HTML结构和CSS样式,实现更复杂的设计。
-
如何将提交的数据发送到指定邮箱?
- 在后台“自定义表单”的修改页面,找到 模板”。
- 你可以编写一封邮件的HTML内容,可以使用变量来动态插入用户提交的数据,
姓名:{name} 电话:{tel} 课程:{course} 备注:{remark} - 填写 “接收邮件的邮箱地址”。
- 这样,每当有用户提交表单,系统就会自动将这封邮件发送到你指定的邮箱。
通过以上步骤,你就可以在织梦CMS中成功创建和使用功能强大的自定义表单了。
