- 创建自定义表单:在后台设计你想要收集的字段。
- 在前台页面调用表单:让访客能够看到并填写表单。
- 检索和管理表单数据:在后台查看、筛选、导出用户提交的数据。
第一步:创建自定义表单
这是所有工作的基础,你需要在织梦后台定义好要收集哪些信息。

(图片来源网络,侵删)
-
登录织梦后台:使用你的管理员账号登录。
-
进入自定义表单管理:
- 在左侧菜单栏中找到 【核心】 -> 插件】 -> 【自定义表单】。
-
添加新的自定义表单:
- 点击右上角的 【增加自定义表单】 按钮。
-
配置表单字段:
(图片来源网络,侵删)- 名称:给你的表单起一个容易识别的名字,产品需求反馈”、“在线报名”、“人才招聘”等,这个名字主要方便你在后台管理。
- 表单提示:这个字段通常可以留空,或者填写一些对整个表单的说明。
- 数据表:这是最重要的部分,织梦会根据你设置的表单字段,自动创建一个数据表来存储数据,表名通常为
dede_sysaddplus加上一个数字。通常你不需要手动修改它,保持默认即可。 - 字段管理:
- 在 【增加自定义表单】 页面的下半部分,就是字段管理区域。
- 点击 【增加字段】。
- 你会看到一个字段配置界面,需要填写以下信息:
- 字段名:英文,用于数据库存储。
name,tel,email,company。一旦设置,尽量不要修改。 - 字段类型:根据你的需求选择,常用类型有:
varchar:单行文本,用于姓名、公司、主题等。text:多行文本,用于留言内容、详细描述等。int:整数,用于年龄、人数等。datetime:日期时间,用于提交时间、预约日期等(这个字段通常由系统自动生成,你不需要手动添加)。float:浮点数,用于价格、分数等。box:复选框,用于多个选项。radio:单选按钮,用于二选一或多选一。select:下拉列表,用于多个固定选项。
- 字段说明:在前台表单中显示给用户的提示文字,请输入您的姓名”、“请选择性别”。
- 默认值:(可选)可以设置一个默认值。
- 是否为空:勾选此项表示该字段可以不填,不勾选则必须填写。
- 字段名:英文,用于数据库存储。
- 重复此步骤,添加所有你需要的字段,
姓名、电话、邮箱、、所在城市(下拉框)等。
-
保存表单:
- 所有字段添加完毕后,点击页面底部的 【保存】 或 【保存并生成表单页面】 按钮。
完成这一步后,你的表单结构就已经创建好了,数据表也准备好了。
第二步:在前台页面调用表单
创建好表单后,你需要在前台页面上放置一个表单,让访客可以填写和提交。
织梦提供了非常便捷的标签来实现这一点。

(图片来源网络,侵删)
-
创建一个HTML页面:
- 在你的网站前台,创建一个HTML页面,
feedback.html(放在根目录的templets/default/目录下,或者你自定义的模板目录)。 - 在后台的“模板管理”中,为这个页面创建一个栏目或不关联栏目直接使用。
- 在你的网站前台,创建一个HTML页面,
-
使用织梦标签调用表单:
- 在
feedback.html文件中,使用织梦的自定义表单标签。
最简单的调用方式(直接输出HTML表单):
{dede:myform name='你的表单名称'}将
你的表单名称替换成你在第一步中设置的“名称”,如果你的表单名称是“在线报名”,那么标签就是:{dede:myform name='在线报名'}织梦会自动解析你定义的字段,并生成一个包含所有字段的HTML表单。
- 在
-
(推荐)自定义表单样式和验证: 直接使用
{dede:myform}生成的表单样式比较朴素,且可能缺少必要的客户端验证(如手机号格式、邮箱格式等),更推荐的方式是手动编写表单HTML,然后通过织梦标签来填充字段。示例代码:
<form name="myform" action="/plus/diy.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="action" value="post" /> <input type="hidden" name="diyid" value="1" /> <!-- diyid是你的自定义表单ID,可以在后台表单列表中看到 --> <input type="hidden" name="do" value="2" /> <!-- 用织梦标签生成一个用于防止重复提交的随机码 --> {dede:php} if(empty($diyform)) { $diyform = $dsql->GetOne("select * from `dede_diyforms` where diyid='$diyid'"); } if($diyform['posttoken']==1){ echo "<input type='hidden' name='dede_fields' value='".$diyform['fields']."' />\r\n"; echo "<input type='hidden' name='dede_fieldshash' value='".md5($diyform['fields'].$cfg_cookie_encode)."' />\r\n"; } {/dede:php} <!-- 循环输出你定义的字段 --> {dede:field name='typename' function='GetChannelDir(@me)'/} {dede:php} if(!empty($diyform)) { $fields = explode(',', $diyform['fields']); foreach($fields as $field) { $fieldinfo = $dsql->GetOne("select * from `dede_diyformfields` where name like '$field'"); if($fieldinfo['isnull']==0){ $required = ' required'; }else{ $required = ''; } echo "<div class='form-group'>"; echo "<label>".$fieldinfo['item']."</label>"; if($fieldinfo['ptype']=='text') { echo "<input type='text' name='$field' class='form-control'$required />"; } elseif($fieldinfo['ptype']=='textarea') { echo "<textarea name='$field' class='form-control'$required></textarea>"; } // 可以继续添加其他类型的判断,如radio, select等 echo "</div>"; } } {/dede:php} <button type="submit" class="btn btn-primary">提交</button> </form>action="/plus/diy.php":固定写法,指向织梦处理表单数据的脚本。diyid:你的自定义表单的唯一ID,可以在后台“自定义表单”列表中找到。name='字段名':表单中input的name属性必须和你第一步中设置的“字段名”完全一致。
-
设置成功跳转页面:
- 在后台“自定义表单”列表中,点击你创建的表单进入编辑。
- 找到 “列表跳转链接” 或 “成功提示页面” 这类选项。
- 你可以设置一个URL,当用户提交成功后,自动跳转到该页面。
/success.html,你也可以留空,织梦会使用默认的成功提示。
第三步:检索和管理表单数据
用户提交数据后,你需要在后台查看和管理。
-
进入数据管理:
- 在后台左侧菜单栏中,找到 【核心】 -> 插件】 -> 【自定义表单】。
- 你会看到你创建的所有表单列表。
-
查看和检索数据:
- 点击你想要查看的表单名称(在线报名”)。
- 你会看到该表单所有提交的数据列表。
- 检索功能:列表页面的顶部通常会有检索框,你可以根据任意一个字段进行搜索,你想查找所有“北京”地区的用户,就在检索框中输入“北京”并点击搜索。
- 筛选功能:一些版本的织梦支持按日期范围筛选,这对于查找特定时间段内的提交记录非常有用。
-
查看单条数据详情:
- 在数据列表中,点击任意一条记录的“预览”或“编辑”按钮。
- 你会看到一个新页面,详细显示了该用户提交的所有信息。
-
导出数据:
- 这是“检索”功能的高级应用,织梦后台没有直接提供一键导出Excel的功能,但可以通过以下方法实现:
- 数据库导出(推荐给技术人员)
- 通过phpMyAdmin登录你的网站数据库。
- 找到存储自定义表单数据的数据表(通常是
dede_addplus或dede_sysaddplus加上数字)。 - 在该表中执行查询,
SELECT * FROM表名WHERE城市= '北京'(根据你的字段名修改)。 - 将查询结果“导出”为CSV或Excel格式。
- 使用第三方插件
在织梦的插件市场(如DedeCMS官网、织梦吧等)搜索“自定义表单数据导出”等关键词,有很多现成的插件可以实现一键导出功能,安装后即可在后台使用,这是最方便的方法。
- 手动复制
对于少量数据,可以直接在后台数据列表页面,全选数据,然后复制到Excel中进行整理。
- 数据库导出(推荐给技术人员)
- 这是“检索”功能的高级应用,织梦后台没有直接提供一键导出Excel的功能,但可以通过以下方法实现:
总结与注意事项
- 字段名:一旦设置,尽量不要修改,否则可能导致数据错乱。
- 表单ID (diyid):在前台调用时,务必使用正确的
diyid。 name属性:前台表单中每个输入框的name必须和后台定义的“字段名”一致。- 安全性:自定义表单是网站的一个入口,要注意防范垃圾信息,可以考虑在表单中加入简单的验证码(织梦默认支持,可以在字段管理中添加
validate类型的验证码字段)。 - 数据备份:定期备份你的网站数据库,以防数据丢失。
通过以上三个步骤,你就可以在织梦CMS中完整地实现一个从创建、调用到检索的自定义表单功能了。
