织梦如何调用自定义表单数据

织梦自定义表单收集到的留言、报名、反馈数据,除了在后台查看,更多场景是要展示到网站前台,例如做成留言板、客户评价墙、报名公示页。围绕"织梦如何调用自定义表单数据"这一问题,本文梳理 loop 标签、sql 标签、独立 PHP 调用三种主流方式,并给出字段格式化、分页、权限控制的实战写法。

一、调用前的准备工作

调用自定义表单数据前,必须先确认两个关键信息:

  • 表单对应的数据表名,通常为 dede_diyform1dede_diyform2,可在"自定义表单 - 修改"页面查看
  • 表单的字段标识,例如 nametelmessagecreatetimeifcheck,前台调用时按字段名输出

同时建议在"系统基本参数 - 性能选项"中关闭模板缓存或设置较短缓存时间,避免新提交数据延迟展示。

二、使用 loop 标签调用

loop 是织梦内置的通用数据调用标签,适合结构简单、不需要复杂 SQL 的场景。在模板文件中加入:

{dede:loop table='dede_diyform1' sort='id' row='10' if='ifcheck=1'}
<li class="msg-item">
  <span class="u">[field:name/]</span>
  <span class="t">[field:tel/]</span>
  <p>[field:message function="cn_substr(@me,80)"/]</p>
  <em>[field:createtime function="MyDate('Y-m-d H:i',@me)"/]</em>
</li>
{/dede:loop}

关键参数说明:

  • table:表单数据表名,不要写错前缀
  • row:调用条数
  • if:过滤条件,ifcheck=1 表示只调已审核数据
  • function:对字段做格式化,MyDate 转时间格式,cn_substr 截取长度

三、使用 sql 标签调用

当调用逻辑较复杂,例如多条件筛选、联表查询时,sql 标签更灵活:

{dede:sql sql="SELECT name,tel,message,createtime FROM dede_diyform1 WHERE ifcheck=1 AND name<>'' ORDER BY createtime DESC LIMIT 10"}
<div class="item">
  <h4>[field:name function="htmlspecialchars(@me)"/]</h4>
  <p>[field:message function="Text2Html(@me)"/]</p>
  <span>[field:createtime function="GetDateTimeMK(@me)"/]</span>
</div>
{/dede:sql}
前台展示用户提交内容时,务必使用 htmlspecialcharsText2Html 转义,防止 XSS 注入。

四、分页调用大量数据

留言数据较多时,建议用独立的 PHP 页面配合织梦分页类实现分页。新建 msglist.php 放到网站根目录:

require_once(dirname(__FILE__).'/include/common.inc.php');
require_once(DEDEINC.'/datalistcp.class.php');

$dlist=new DataListCP();
$dlist->pageSize=15;
$dlist->SetParameter('typeid', $typeid);
$dlist->SetSource('SELECT * FROM dede_diyform1 WHERE ifcheck=1 ORDER BY id DESC');
$dlist->Display('templets/msglist.htm');

模板 msglist.htm 中用 {dede:datalist} 输出记录,{dede:pagelist/} 输出分页导航。

五、注意事项

调用前先确认数据库前缀,迁移站点后需同步修改表名。
展示用户内容时务必过滤敏感字段,例如不要把手机号完整显示,可用 substr_replace 中间打码。
分页页面前台访问建议开启伪静态,避免动态参数过多影响收录。

六、后续优化方向

掌握织梦如何调用自定义表单数据后,可以把表单数据接入到首页推荐位、栏目侧栏、专题页等更多入口,让用户产生的优质内容流动起来。对于留言板类页面,建议结合点赞、回复功能做成轻量社区,提升访客停留时长。同时把已审核数据同步推送到企业微信或飞书群,让运营第一时间感知用户反馈,把静态展示升级为实时互动,让自定义表单真正服务于业务增长。