- 后台创建表单:定义你需要收集哪些信息。
- 前台调用表单:将创建好的表单显示在网站页面上。
- 后台管理表单数据:查看和管理用户提交的信息。
第一步:后台创建自定义表单
这是最关键的一步,你需要在这里设计表单的字段。

(图片来源网络,侵删)
登录织梦后台
打开你的网站后台,使用管理员账号登录。
进入自定义表单管理界面
在后台左侧菜单栏中,找到并点击 【核心】 -> 插件】 -> 【自定义表单】。
创建新的自定义表单
在自定义表单管理页面,点击右上角的 【增加自定义表单】 按钮。
填写表单基本信息
在弹出的表单中,你需要填写以下几个核心字段:
- 表单名称:给你的表单起一个容易识别的名字,在线报名”、“产品咨询”、“人才招聘”等,这个名字只在后台管理时可见,前台不会显示。
- 表单提示:这是用户在填写表单前看到的引导性文字,请认真填写以下信息,我们会尽快与您联系”,这部分内容会显示在表单的上方。
- :这里是表单的核心,你需要在这里手动 HTML代码 来定义表单的字段和样式,织梦不会像其他CMS那样提供可视化的字段添加界面,所以你需要手动编写HTML代码。
编写表单内容的HTML代码
这是新手最容易困惑的地方,你需要结合HTML表单标签和织梦的专用标签 {dede:php} 来编写。
常用HTML表单元素:
- 文本输入框:
<input type="text" name="字段名" placeholder="提示文字" /> - 多行文本框:
<textarea name="字段名" placeholder="请输入详细内容"></textarea> - 下拉选择框:
<select name="字段名"> <option value="选项1">选项1</option> <option value="选项2">选项2</option> </select> - 单选按钮:
<input type="radio" name="字段名" value="男" /> 男 <input type="radio" name="字段名" value="女" /> 女
- 复选框:
<input type="checkbox" name="字段名[]" value="选项1" /> 选项1 <input type="checkbox" name="字段名[]" value="选项2" /> 选项2
- 提交按钮:
<input type="submit" value="提交" />
织梦专用标签:
{dede:php}:用于执行PHP代码,最重要的作用是生成表单提交的目标地址和令牌。action='{dede:php}echo $cfg_cmspath;{/dede:php}/plus/diy.php':这是表单提交的地址,必须使用这个标签来动态获取。input type='hidden' name='dede_fields' value='字段名1,文本串1;字段名2,文本串2':这是最重要的隐藏字段,它告诉织梦你要保存哪些数据。字段名:对应你HTML标签中name属性的值,如name="name",这里的字段名就是name。文本串:字段的类型,常用值有:text(文本),varchar(短文本),number(数字),datetime(日期时间),htmltext(多行文本) 等,这个类型决定了数据在后台的存储方式。
input type='hidden' name='dede_fieldshash' value='':用于防止重复提交的安全令牌,通常留空即可,织梦会自动生成。
【实战示例:创建一个“在线报名”表单】
假设我们要创建一个包含“姓名”、“电话”、“意向课程”和“备注”的报名表单。
表单名称:在线报名 表单提示:欢迎参加我们的培训课程,请填写以下信息报名。 的HTML代码如下:
<style>
.my-form p { margin-bottom: 15px; }
.my-form label { display: inline-block; width: 80px; }
.my-form input[type="text"], .my-form select, .my-form textarea { width: 250px; padding: 5px; border: 1px solid #ccc; }
.my-form textarea { height: 100px; resize: none; }
.my-form .submit { margin-left: 85px; }
</style>
<div class="my-form">
<p>
<label>姓名:</label>
<input type="text" name="name" placeholder="请输入您的姓名" required />
</p>
<p>
<label>电话:</label>
<input type="text" name="tel" placeholder="请输入您的联系电话" required />
</p>
<p>
<label>意向课程:</label>
<select name="course">
<option value="">请选择课程</option>
<option value="PHP开发">PHP开发</option>
<option value="前端开发">前端开发</option>
<option value="UI设计">UI设计</option>
</select>
</p>
<p>
<label>备注:</label>
<textarea name="remark" placeholder="请输入其他信息或备注"></textarea>
</p>
<p class="submit">
<input type="submit" name="submit" value="提 交" />
</p>
</div>
<!-- 织梦专用代码,必须放在form标签内 -->
{dede:php}
// 隐藏字段:定义要提交的字段和类型
echo "<input type='hidden' name='dede_fields' value='name,text;tel,text;course,text;remark,htmltext' />\n";
// 安全令牌
echo "<input type='hidden' name='dede_fieldshash' value='' />\n";
// 表单提交地址
echo "<input type='hidden' name='action' value='post' />\n";
// 提交后跳转的页面,可以写一个“提交成功”的页面地址
echo "<input type='hidden' name='gourl' value='/plus/success.html' />\n";
{/dede:php}
代码解释:
- 我们用
<style>简单美化了一下表单样式,可选。 - 每个表单元素都设置了
name属性,这些name(name, tel, course, remark) 将作为数据库的字段名。 {dede:php}...{/dede:php}里面的代码是关键。dede_fields的值name,text;tel,text;course,text;remark,htmltext定义了四个字段,并用分号隔开。remark我们使用了htmltext类型,因为它可能包含换行,更适合存储多行文本。action='post'表示提交数据。gourl指定了提交成功后跳转的页面,你需要提前在网站里创建一个名为success.html的页面,并写上“提交成功,感谢您的报名!”之类的提示。
填写完所有信息后,点击 【确定】 保存,至此,后台的表单创建就完成了。
第二步:前台调用表单
你需要将这个创建好的表单显示在网站的某个页面上。
创建模板文件
在你的模板目录(通常是 /templets/default/ 或你自定义的模板目录)下,创建一个新的HTML文件,baoming.html。
在模板文件中调用表单
在 baoming.html 文件中,使用织梦的 自定义表单调用标签 {dede:php} 来获取并显示表单。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">在线报名 - {dede:global.cfg_webname/}</title>
</head>
<body>
<h1>在线报名</h1>
{dede:php}
// 调用ID为1的自定义表单
// 注意:这里的数字1是你在后台创建的“在线报名”表单的ID,你可以在后台自定义表单列表里看到。
$dsql->Execute('me', "select * from `dede_diyforms` where id=1");
$arr = $dsql->GetArray();
if(is_array($arr))
{
echo $arr['formht'];
}
{/dede:php}
</body>
</html>
代码解释:
{dede:php}...{/dede:php}同样用于执行PHP代码。$dsql->Execute(...)是执行数据库查询的代码。select * fromdede_diyformswhere id=1:从dede_diyforms这个表(存储表单信息的表)中查询id为 1 的记录。- 如何找到你的表单ID? 回到后台的 【自定义表单】 列表页面,鼠标悬停在你的表单名称上,浏览器左下角的状态栏会显示链接,如
diy.php?id=1,这里的1就是你的表单ID。 $arr['formht']:这个字段存储了你在后台填写的 ”,我们将它直接echo出来,就会显示你之前编写的那个报名表单了。
生成并访问页面
- 在后台 【生成】 -> 【更新HTML】 -> 【更新指定页面的HTML】,选择你刚刚创建的
baoming.html模板进行生成。 - 或者,你可以通过 【模板】 -> 【默认模板管理】,找到
baoming.html,点击后面的 【更新】 按钮。 - 访问你网站对应的页面(
http://你的网站.com/baoming.html),就能看到你创建的报名表单了。
第三步:后台管理表单数据
用户提交表单后,你需要在后台查看和管理这些数据。
- 进入数据管理界面:在后台左侧菜单栏中,找到 【核心】 -> 插件】 -> 【自定义表单】。
- 查看数据:你会看到一个列表,这里列出了你创建的所有自定义表单,点击你想要查看的表单名称(在线报名”)。
- 管理数据:
- 列表:这里会显示所有用户提交的数据,每一条记录都对应一次提交,你可以看到提交时间、IP地址等信息。
- 审核:默认情况下,新提交的数据是“未审核”状态,你可以勾选记录,然后点击顶部或底部的 【审核】 按钮将其通过。
- 删除:勾选记录,点击 【删除】 按钮可以将其删除。
- 查看详情:点击记录最左边的 【预览】 或 【编辑】 图标,可以查看该条提交的详细信息。
常见问题与注意事项
-
提交后没有反应或跳转错误:
- 检查
gourl路径是否正确,确保该页面存在。 - 检查表单内容里的
{dede:php}标签是否完整,特别是dede_fields的值是否与你的name属性和字段类型对应正确。 - 确保你的网站目录没有修改过,
/plus/diy.php文件存在。
- 检查
-
收不到邮件通知(如果配置了邮件发送):
- 检查后台系统基本参数中的 【邮件设置】 是否配置正确。
- 确保服务器支持邮件发送功能。
-
样式错乱:
- 你可以在后台“表单内容”里直接写
<style>标签来定义样式,也可以像示例中那样,在模板文件里通过CSS类来控制。
- 你可以在后台“表单内容”里直接写
通过以上三个步骤,你就可以熟练地使用织梦的自定义表单功能了,虽然上手需要一点HTML基础,但一旦掌握,它的灵活性和强大功能会让你受益匪浅。
