dede自定义表单如何调用?

99ANYc3cd6
预计阅读时长 21 分钟
位置: 首页 DEDE建站 正文

第一步:创建自定义表单(后台操作)

这是所有工作的基础,你需要先在后台定义好表单需要包含哪些字段。

dede自定义表单调用
(图片来源网络,侵删)
  1. 登录DedeCMS后台:使用你的管理员账号登录网站后台。

  2. 进入表单管理

    • 在左侧菜单栏中找到 【核心】 -> 模型管理】
    • 模型管理页面,点击顶部的 【自定义表单】 选项卡。
  3. 添加新的表单

    • 点击 【增加一个新的自定义表单】 按钮。
    • 表单名称:给你的表单起一个容易识别的名字,“在线报名”、“产品咨询” 等,这个名字不会在前台显示,仅用于后台管理。
    • 数据表:系统会自动生成一个表名,如 dede_addonxx,你无需修改。
    • 默认表单模板:可以暂时留空,稍后我们再创建前台模板。
    • 列表模板:可以暂时留空,如果你想在前台展示已提交的表单数据,可以在这里设置。
    • 点击 【保存】 按钮。
  4. 添加表单字段(最关键的一步)

    dede自定义表单调用
    (图片来源网络,侵删)
    • 保存后,你会进入该表单的字段管理界面,点击 【添加新字段】

    • 你需要为每个字段逐一设置,下面以一个常见的“在线报名”表单为例,创建几个字段:

      • 字段名name (小写,不要用中文)

      • 字段类型单行文本

        dede自定义表单调用
        (图片来源网络,侵删)
      • 字段说明姓名 (这个会作为表单的提示文字)

      • 前台提示文字请输入您的姓名

      • 是否必填

      • 默认值:留空

      • 数据校验textLength (限制文本长度)

      • 显示顺序1

      • 点击 【保存】

      • 字段名tel

      • 字段类型单行文本

      • 字段说明联系电话

      • 前台提示文字请输入您的联系电话

      • 是否必填

      • 数据校验number (只能输入数字)

      • 显示顺序2

      • 点击 【保存】

      • 字段名course

      • 字段类型下拉菜单

      • 字段说明报名课程

      • 前台提示文字请选择您要报名的课程

      • 选项值网页设计,PHP开发,Java开发 (用英文逗号隔开)

      • 是否必填

      • 显示顺序3

      • 点击 【保存】

      • 字段名content

      • 字段类型多行文本(文本区域)

      • 字段说明备注信息

      • 前台提示文字请输入您的备注信息

      • 是否必填

      • 显示顺序4

      • 点击 【保存】

      • 字段名ip

      • 字段类型单行文本

      • 字段说明IP地址

      • 系统默认字段:勾选此项。(非常重要!这个字段用于自动记录提交者的IP地址)

      • 是否显示 (在前台不显示)

      • 显示顺序99 (放到最后)

      • 点击 【保存】

  5. 完成创建

    • 重复以上步骤,添加完所有需要的字段后,你的自定义表单就创建好了,你可以在后台的 【自定义表单】 列表中看到它,并点击进入查看和管理已提交的数据。

第二步:调用自定义表单(前台页面)

我们需要在前台页面创建一个HTML表单,让用户可以填写并提交数据。

  1. 创建前台模板文件

    • 在你的网站模板目录(通常是 /templets/default/ 或你自定义的模板目录)下,创建一个新的HTML文件,baoming.html
  2. 编写表单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=后台字段类型2name=text,tel=text,course=select,content=textarea
        • dede_fieldshide: 用于隐藏不需要用户填写但需要提交的字段,例如我们刚才创建的 ip 字段,格式为 隐藏字段名
  3. 完整代码示例 (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 字段隐藏,并随表单一起提交。

第三步:创建栏目并关联模板

为了让这个页面能被访问,你需要创建一个栏目。

  1. 在后台进入【频道模型】->【栏目管理】

  2. 增加一个顶级栏目

    • 栏目名称在线报名
    • :选择 使用自定义表单
    • 选择表单:从下拉菜单中选择你刚才创建的“在线报名”表单。
    • 列表模板:可以不填或填写一个显示已提交信息的模板。
    • 发布位置:选择一个你希望显示这个栏目的位置。
    • 选择自定义表单模板点击后面的“选择”按钮,在弹出的窗口中选择你刚刚创建的 baoming.html 模板文件。
    • 点击 【确定】 保存。
  3. 前台访问

    • 现在你可以通过网站首页的导航链接访问这个“在线报名”栏目页面了。
    • 用户填写表单并提交后,数据会自动保存到数据库中,你可以在后台 【自定义表单】 -> 【在线报名】 中查看所有提交的记录。

高级技巧与注意事项

  • 自定义提交后的提示

    • 默认提交后会跳转到 /plus/diy.php 页面,并显示一个默认的成功提示。
    • 你可以自定义这个提示页面,在 /plus/diy.php 文件中找到 $bkmsg = '发布成功,请等待管理员处理!'; 这一行,修改这里的文字即可。
    • 你也可以让它跳转到任意指定页面,在 $gourl = '-'; 这一行,将 改为你想要跳转的网址,'/success.html'
  • 表单样式

    • baoming.html 只是一个纯功能性的HTML,你可以用CSS为它添加样式,使其更美观,在 <head> 标签中引入你的CSS文件即可。
  • 数据安全

    • 自定义表单没有内置的验证码功能,很容易被机器人恶意提交,导致垃圾信息。
    • 强烈建议你为表单添加验证码,可以使用DedeCMS的验证码标签 {dede:vcode/} 插入到表单中,并确保在后台系统基本参数中开启了验证码功能。
  • 邮件提醒

    如果你希望在收到新表单时能收到邮件通知,可以在后台自定义表单的字段管理中,找到“发布邮件提醒”选项,并配置好邮件接收人,但这部分功能可能因DedeCMS版本不同而有所差异,有时需要手动修改代码或使用插件实现。

通过以上三个步骤,你就可以成功地在DedeCMS中创建并调用一个功能完整的自定义表单了。

-- 展开阅读全文 --
头像
织梦为何无法生成文章页?
« 上一篇 今天
dede404页面模板如何自定义?
下一篇 » 今天
取消
微信二维码
支付宝二维码

目录[+]