织梦自定义表单后台为何不显示数据?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文

这个过程非常简单,核心是将自定义表单的数据关联到织梦的核心数据表,这样后台的内容模型管理模块就能识别并显示它们。

织梦自定义表单后台显示
(图片来源网络,侵删)

核心思路

列表(如文章、软件等)之所以能统一管理,是因为它们的数据都存储在核心数据表中(如 dede_archives, dede_addonarticle 等),自定义表单默认使用的是 dede_diyforms 这个独立的表,后台默认不直接显示它。

要让后台显示,我们只需要:

  1. 创建一个栏目:这个栏目将作为我们自定义表单数据的“容器”。
  2. 创建一个内容模型:这个模型定义了我们的自定义表单有哪些字段(如姓名、电话、留言等)。
  3. 关联模型:将第一步创建的栏目与第二步创建的模型关联起来。
  4. 修改表单提交代码:让表单提交时,数据不是存入 dede_diyforms,而是存入我们新模型对应的表中。

完成以上步骤后,你就可以像管理文章一样,在后台的“核心” -> “内容模型管理” -> “内容维护”中看到并管理你的表单提交数据了。


详细图文步骤

假设我们要创建一个“在线留言”表单,包含“姓名”、“电话”、“留言内容”三个字段。

第一步:创建栏目

  1. 登录织梦后台,进入【核心】 -> 【栏目管理】。
  2. 点击顶部的【增加顶级栏目】。
  3. 填写栏目信息:
    • 栏目名称:填写一个你想要的名称,在线留言”。(这个名称在后台菜单中会显示)
    • 栏目目录:可以留空,系统会自动生成,或者手动填写一个英文字符串,如 message
    • 栏目类型务必选择“内部栏目”
    • 先不选! 等我们创建好模型后再回来选择。
    • 其他选项可以默认。
  4. 点击【确定】保存,记住这个栏目的ID(通常是数字,如 5)。

第二步:创建内容模型

  1. 进入【核心】 -> 模型管理】
  2. 点击【增加一个新模型】。
  3. 填写模型信息:
    • 模型名称:填写一个识别名称,在线留言表单”。
    • 表前缀非常重要! 织梦会自动生成一个表前缀,如 dede_addonmsg请务必记住这个表名,后面修改表单代码时会用到。
    • 名称:这个名称会在后台菜单中显示,可以写“在线留言”。
    • 简介:可以简单描述一下。
  4. 点击【下一步,添加字段】。
  5. 添加字段:这是最关键的一步,我们需要添加“姓名”、“电话”、“留言内容”。
    • 字段1
      • 字段名称name (建议用英文,不含空格)
      • 字段提示姓名 (这个是后台表单里显示的提示文字)
      • 字段类型单行文本
      • 其他选项:保持默认或根据需要设置,如是否为必填。
      • 点击【保存】。
    • 字段2
      • 字段名称tel
      • 字段提示电话
      • 字段类型单行文本
      • 点击【保存】。
    • 字段3
      • 字段名称content
      • 字段提示
      • 字段类型多行文本(编辑器)
      • 点击【保存】。
    • 你可以根据需要继续添加更多字段。
  6. 所有字段添加完毕后,点击【保存并生成模型】。
  7. 模型创建成功后,系统会提示你模型ID和对应的附加表名(如 dede_addonmsg)。请务必记录下这个附加表名

第三步:关联模型与栏目

  1. 回到【核心】 -> 【栏目管理】。
  2. 找到我们第一步创建的“在线留言”栏目,点击后面的【修改】。
  3. 在修改页面,找到 这一栏,从下拉菜单中选择我们刚刚创建的模型(名称为“在线留言”的那个)。
  4. 其他选项可以按需修改,然后点击【确定】保存。

第四步:修改前台表单代码

我们需要修改你的自定义表单模板(通常是 /templets/plus/diyform.htm),让它提交数据到我们新创建的模型附加表中,而不是默认的 dede_diyforms

打开你的表单模板文件,找到 <form> 标签,修改 action 属性。

原始代码通常是:

<form action="/plus/diy.php" enctype="multipart/form-data" method="post">

修改为:

<form action="/plus/diy.php?modelid=[你的模型ID]" enctype="multipart/form-data" method="post">

如何获取模型ID?

  • 模型管理】里,你刚刚创建的模型列表中可以看到。
  • 或者,在第三步修改栏目时,选择模型后,URL栏里可以看到 mid=[模型ID]

示例: 如果你的模型ID是 6action 就应该写成:

<form action="/plus/diy.php?modelid=6" enctype="multipart/form-data" method="post">

隐藏字段说明:

  • dede_fields: 用于告诉后台这个表单有哪些字段,格式是 字段名1,字段名2name,text;tel,text;content,textarea,但通常织梦会自动处理,可以不写。
  • dede_fieldshide: 用于隐藏一些字段,ip(记录IP地址)和 time(记录提交时间),建议加上,非常有用。
    <input type="hidden" name="dede_fieldshide" value="ip,time" />

修改后的完整表单代码示例:

<form action="/plus/diy.php?modelid=6" enctype="multipart/form-data" method="post">
    <input type="hidden" name="dede_fieldshide" value="ip,time" />
    <p>姓名:<input type="text" name="name" id="name" /></p>
    <p>电话:<input type="text" name="tel" id="tel" /></p>
    <p>留言内容:<textarea name="content" id="content"></textarea></p>
    <p><input type="submit" name="submit" value="提交" /></p>
</form>

第五步:后台查看数据

完成以上所有步骤后,你的自定义表单就已经和后台打通了。

  1. 登录织梦后台。
  2. 进入【核心】 -> 模型管理】
  3. 点击你创建的模型名称(如“在线留言”)。
  4. 在弹出的页面中,你就可以看到所有通过这个表单提交的数据了,你可以在这里进行审核、删除等操作,就像管理文章一样。

总结与常见问题

  • 核心记忆点栏目 + 内容模型 + 修改 action,这三步是打通前后台的关键。
  • 为什么我的数据还是没显示?
    1. 检查第四步action 里的 modelid 是否正确?
    2. 检查字段名:表单里的 name 属性(如 name="name")是否和后台模型里定义的字段名称完全一致?(注意区分大小写)
    3. 检查数据表:确认数据是否真的写入了我们新创建的附加表(如 dede_addonmsg),而不是旧的 dede_diyforms 表,可以用phpMyAdmin查看。
  • 可以保留默认的自定义表单后台吗?
    • 可以,默认的自定义表单后台在【插件】 -> 【自定义表单】里,你可以选择使用默认后台,或者按照本教程使用更强大的内容模型后台,两者是独立的,互不影响,但通常推荐使用内容模型后台,因为功能更统一、更强大。

通过以上步骤,你就可以完美地将织梦自定义表单集成到后台的内容管理体系中了。

-- 展开阅读全文 --
头像
单片机C语言答案,如何高效解决应用技术难题?
« 上一篇 01-10
C语言中缀转后缀表达式怎么实现?
下一篇 » 01-10

相关文章

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

目录[+]