dede如何调用自定义表单数据?

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

创建自定义表单

这是所有操作的基础,你需要在DedeCMS后台创建一个新的表单,系统会自动为你生成数据表和相关的管理页面。

dede调用自定义表单数据
(图片来源网络,侵删)
  1. 登录DedeCMS后台
  2. 进入 【核心】 -> 频道管理】
  3. 在页面底部,找到 【自定义表单】 按钮,点击进入。
  4. 点击 【增加一个自定义表单】
  5. 填写表单信息
    • 表单名称:给你的表单起一个容易识别的名字,在线报名表”、“产品咨询表”。
    • 数据表:系统会自动根据表单名称生成一个前缀为dede_的数据表名(如 deda_addonform1),通常无需修改。
    • 默认表单模板:可以为这个表单指定一个默认的提交页面模板(可选)。
    • 列表模板:用于显示表单提交记录列表的模板(可选)。
    • 发布模板:用户填写并提交表单时使用的模板(可选)。
    • 后台列表行数:设置在后台管理页面每页显示多少条记录。
    • 是否验证码:建议开启,以防止垃圾信息提交。
    • 是否前台投稿:根据需要选择是否允许会员在前台提交。
  6. 添加表单字段
    • 点击“确定”保存后,你会进入自定义表单的管理界面。
    • 找到 【字段管理】 -> 【添加新字段】
    • 字段名:英文,用于数据库存储,name, tel, email, content注意:字段名只能包含字母、数字和下划线,不能使用中文或特殊符号。
    • 字段提示:在前台表单中显示给用户的提示文字,您的姓名”、“联系电话”。
    • 字段类型:根据你的需求选择,常用的有:
      • text:单行文本输入框。
      • textarea:多行文本框(用于留言、备注等)。
      • select:下拉选择框。
      • radio:单选按钮。
      • checkbox:复选框。
      • datetime:日期时间选择器。
    • 默认值:可以为字段设置一个默认值(可选)。
    • 是否必填:勾选此项后,用户提交时该字段不能为空。
    • 其他选项:根据字段类型不同,会有不同的选项,比如下拉框的选项列表等。
  7. 生成表单
    • 添加完所有需要的字段后,回到自定义表单管理主界面。
    • 找到你刚创建的表单,在操作栏点击 【生成表单】
    • 系统会自动生成一个HTML表单代码,你可以复制这个代码,粘贴到你想要在前台显示表单的页面模板文件中(index.htm)。

你的自定义表单已经可以接收用户提交的数据了,你可以在后台的 【自定义表单】 菜单下看到所有提交的记录。


第二步:调用自定义表单数据

调用数据通常有两种主要场景:

  1. 后台直接查看:直接在后台管理界面查看,最简单。
  2. 前台页面展示:展示“客户案例”、“报名成功者名单”等,这是本教程的重点。

在后台管理(最简单)

直接登录后台,进入 【自定义表单】,你就可以看到所有用户提交的数据,并进行审核、删除等操作,无需任何代码。

在前台页面调用(使用Dede标签)

这是最常用的方法,我们需要使用DedeCMS的标签 {dede:loop} 来遍历自定义表单数据表中的记录。

dede调用自定义表单数据
(图片来源网络,侵删)

假设你的自定义表单名称是“在线报名”,那么对应的数据表名通常是 dede_addonform1(数字序号可能不同)。

获取数据表名

最准确的方法是登录你的网站数据库(如使用phpMyAdmin),查看 dede_addonform 这张表,里面会有一个字段 formname,记录了每个自定义表单对应的数据表名,你的“在线报名”表可能对应 dede_addonform18

编写调用代码

dede调用自定义表单数据
(图片来源网络,侵删)

在你需要展示数据的模板文件(case_list.htm)中,使用以下代码:

<h2>客户案例展示</h2>
<ul>
    {dede:loop table='dede_addonform18' sort='id' row='10' if='ischeck=1'}
    <li>
        <strong>客户姓名:</strong>[field:name/]
        <strong>公司名称:</strong>[field:company/]
        <p>需求描述:[field:content/]</p>
        <p>提交时间:[field:pubdate function="MyDate('Y-m-d H:i:s',@me)"/]</p>
    </li>
    {/dede:loop}
</ul>

代码详解:

  • {dede:loop}:这是DedeCMS最强大的循环标签之一。
    • table='dede_addonform18'这是最重要的参数,填写你的自定义表单对应的数据表名。
    • sort='id':按哪个字段排序。id 是主键,按 id 降序排列(即最新的在最前面)是最常见的用法,如果你想按升序排列,可以写成 sort='id' order='ASC'
    • row='10':调用多少条数据。
    • if='ischeck=1'这是数据审核的关键ischeck 是自定义表单自带的审核状态字段。ischeck=1 表示只调用已审核通过的数据,如果你的表单没有这个字段或者不需要审核,可以去掉这个条件。
  • [field:字段名/]:在循环内部,使用这个标签来输出每个字段的内容。
    • [field:name/]:输出你之前在字段管理中添加的 name 字段的内容。
    • [field:content/]:输出多行文本框的内容。
    • [field:pubdate/]:输出记录提交时的时间戳(Unix时间格式)。
  • function="MyDate('Y-m-d H:i:s',@me)":这是一个函数,用于将时间戳格式化为更易读的日期时间格式。Y-m-d H:i:s 是格式化模板,@me 代表当前字段的值。

第三步:进阶技巧与常见问题

如何只调用最新的N条数据?

使用 row 参数即可,调用最新的5条数据:

{dede:loop table='dede_addonform18' sort='id' row='5' if='ischeck=1'}
    <!-- 循环内容 -->
{/dede:loop}

如何分页调用自定义表单数据?

{dede:loop} 本身不支持分页,如果数据量很大,需要分页显示,你需要使用更复杂的 SQL语句查询

{dede:sql sql='SELECT * FROM `dede_addonform18` WHERE ischeck=1 ORDER BY id DESC LIMIT 0,10'}
    <li>
        <strong>客户姓名:</strong>[field:name/]
        <p>提交时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</p>
    </li>
{/dede:sql}

分页实现思路:

  1. 使用 {dede:sql} 执行查询。
  2. 在查询语句中使用 LIMIT 来控制每页的起始位置和数量。
  3. 你需要手动编写分页逻辑,或者借助DedeCMS的 pagenote 等变量来实现分页链接,这相对复杂一些,对于少量数据,直接用 loop 不分页是最佳实践。

调用后,如何跳转到指定页面?

当用户提交表单后,默认会跳转到系统生成的提示页面,如果你想让它跳转到你的指定页面(跳转到网站的“感谢页”):

  1. 在后台自定义表单管理界面,找到你的表单。
  2. 点击 【修改】
  3. 在表单修改页面,找到 【跳转网址】 这个选项。
  4. 在输入框中填入你想要跳转的页面地址,/thanks.html
  5. 保存修改即可。

调用后,如何不显示后台的“未审核”状态?

调用数据时,务必加上 if='ischeck=1' 条件,这样可以确保只有你手动在后台审核通过的数据才会被显示出来,避免了前台展示大量垃圾或待审核信息。

  1. 创建表单:后台 -> 自定义表单 -> 增加表单 -> 添加字段 -> 生成表单。
  2. 前台提交:将后台生成的表单代码粘贴到需要展示的模板中。
  3. 前台调用:使用 {dede:loop table='你的数据表名' sort='id' row='数量' if='ischeck=1'}...{/dede:loop}
  4. 字段显示:在循环体内使用 [field:你的字段名/] 来输出内容。
  5. 时间格式化:对 pubdate 等时间戳字段使用 function="MyDate(..., @me)" 进行格式化。

按照以上步骤,你就可以轻松地在DedeCMS中实现自定义表单的创建和数据调用了,如果在操作中遇到问题,请仔细检查数据表名、字段名是否正确,以及是否遗漏了关键的 if 条件。

-- 展开阅读全文 --
头像
C语言版第二版课后习题答案有吗?
« 上一篇 今天
dede自定义表单群发邮件如何实现?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码