织梦自定义表单调用方法是什么?

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

第一步:创建自定义表单

在调用数据之前,你必须先有一个自定义表单来收集数据。

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

  2. 进入表单管理:在左侧菜单栏中,找到 【核心】 -> 采集】 -> 【自定义表单】

  3. 创建新表单:点击 【增加自定义表单】 按钮。

  4. 填写表单信息

    织梦如何调用自定义表单
    (图片来源网络,侵删)
    • 表单名称:给你的表单起一个名字,在线留言”、“报名登记”等,这个名字主要是方便你在后台识别。
    • 数据表:这是表单数据存储的数据库表名。强烈建议使用默认生成的dede_sysdiy(这是织梦自带的)或者你手动指定的一个前缀表名(如 dede_myform)。不要随意修改,否则可能导致数据无法正确读取。
    • 目录默认值:可以留空。
    • 列表模板:用于设置这个表单提交成功后,跳转到的页面模板,你可以先创建一个简单的“提交成功”页面,然后在这里选择,如果不需要,可以留空或使用默认的。
    • 会员投稿项:如果这个表单只允许会员提交,就勾选此项,普通访客将无法看到表单。
    • 后台列表显示条数:设置在后台管理界面一次显示多少条记录。
    • 是否启用:务必选择 “是”,否则表单将无法在前端使用。
  5. 添加表单字段:这是最关键的一步,创建完表单后,你会进入字段管理界面,你需要为你的表单添加各种输入项。

    • 点击 【增加字段】
    • 字段名:这是数据库中的字段名,只能包含字母、数字和下划线,name, tel, email, content建议使用英文
    • 字段提示:这是在前端表单中显示给用户的提示文字,您的姓名”、“联系电话”、“留言内容”。
    • 字段类型:选择你需要的输入类型,如:
      • text: 单行文本
      • textarea: 多行文本
      • select: 下拉选择
      • radio: 单选按钮
      • checkbox: 复选框
      • datetime: 日期时间
      • number: 数字
    • 默认值:可以设置字段的默认值。
    • 是否必填:如果设置为“是”,用户在提交时必须填写此项。
    • 数据校验:可以设置简单的校验规则,如“数字”、“邮箱”等。

    示例:创建一个“在线留言”表单,包含“姓名”、“电话”、“留言内容”三个字段。

    • 字段1:name (文本), 提示:“您的姓名”, 必填。
    • 字段2:tel (文本), 提示:“您的电话”, 必填。
    • 字段3:content (多行文本), 提示:“留言内容”, 必填。
  6. 生成表单代码

    • 字段添加完成后,回到自定义表单列表,找到你刚刚创建的表单,点击 【代码】 按钮。
    • 系统会生成一段完整的HTML表单代码。你需要做的就是将这段代码复制到你想要在前端展示表单的页面模板中index.htm 或一个专门的自定义页面)。

第二步:在前端页面调用表单数据

当你已经收集了一些表单数据后,就可以在网站的任意页面(如首页、列表页、内容页)来调用和展示了。

织梦如何调用自定义表单
(图片来源网络,侵删)

织梦调用自定义表单数据主要使用 {dede:arclist}{dede:list} 标签,但需要通过特定的属性来实现。

使用 {dede:arclist} 标签(推荐,灵活)

{dede:arclist} 标签主要用于调用文章,但通过 channelid 属性可以指定调用其他模型的数据,自定义表单就属于一种特殊的模型。

  1. 找到你的表单ID

    • 在后台进入 【核心】 -> 【频道管理】
    • 在列表中找到你的自定义表单,查看它的“栏目ID”,如果你没有在频道管理里看到,可以回到 【自定义表单】 列表,鼠标移到表单名称上,浏览器状态栏会显示链接,diyid= 后面的数字就是你的表单ID。
  2. 编写调用代码: 将以下代码放到你需要展示数据的模板文件中(index.htm)。

<h3>最新留言</h3>
<ul>
    {dede:arclist channelid='-1' row='5' titlelen='30' orderby='id' orderway='desc'}
    <li>
        <!-- [field:name/] 调用你自定义的字段,'name' 字段 -->
        <!-- [field:tel/] 调用 'tel' 字段 -->
        <!-- [field:content function='cn_substr(@me, 100)'/] 调用 'content' 字段,并用函数截取前100个字符 -->
        留言人:[field:name/] | 电话:[field:tel/] | 内容:[field:content function='cn_substr(@me, 100)'/] | 时间:[field:senddate function='MyDate('Y-m-d H:i:s', @me)'/]
    </li>
    {/dede:arclist}
</ul>

代码详解

  • channelid='-1':这是调用自定义表单数据的关键。-1 代表调用所有非文章模型的数据,如果你的自定义表单在频道管理里有ID,也可以直接使用那个ID,如 channelid='8'
  • row='5':表示调用5条记录,len='30'`:虽然自定义表单没有标题,但这个标签在某些版本下可能需要,更常用的是对内容字段进行截取。
  • orderby='id':按记录的ID排序。
  • orderway='desc':降序排列,即最新的在最前面,如果使用 asc 则为升序。
  • [field:字段名/]:这是核心,用来调用你自定义的每一个字段。
    • [field:name/]:调用名为 name 的字段。
    • [field:content/]:调用名为 content 的字段。
    • [field:senddate/]:调用提交时间,这是系统自带的字段。
  • 使用函数function='cn_substr(@me, 100)' 表示对 content 字段的内容截取前100个字符,避免过长内容破坏页面布局。MyDate() 函数用于格式化时间。

使用 {dede:list}

如果你的自定义表单数据量很大,并且希望它有一个类似文章列表页的展示效果,可以使用 {dede:list}

  1. 创建一个列表模板:在后台模板管理中,创建一个新的模板文件,list_message.htm
  2. 编写列表页代码
{dede:list pagesize='10'}
    <div class="message-item">
        <h4>来自 [field:name/] 的留言</h4>
        <p class="tel">联系电话:[field:tel/]</p>
        <p class="content">[field:content/]</p>
        <p class="time">提交时间:[field:senddate function='MyDate('Y-m-d H:i:s', @me)'/]</p>
    </div>
{/dede:list}
<!-- 分页条 -->
<div class="page">{dede:pagelist listsize='4'/}</div>
  1. 创建一个栏目并关联模板

    • 进入 【核心】 -> 【栏目管理】
    • 点击 【增加一个栏目】
    • 栏目名称:填写“留言展示”。
    • 栏目类型:选择“普通栏目”。
    • :选择“使用自定义表单”。
    • 选择表单:在下拉菜单中选择你之前创建的自定义表单(如“在线留言”)。
    • 列表模板:选择你刚刚创建的 list_message.htm 模板。
    • 确定保存。
  2. 访问栏目页面:你可以通过访问这个“留言展示”栏目的链接(如 http://你的域名/plus/list.php?tid=X,X是栏目ID)来查看分页的列表数据。


第三步:常见问题与高级技巧

问题1:调用不到数据,显示为空。

  • 检查表单是否启用:在后台“自定义表单”列表中,确认你的表单状态是“是”。
  • 检查是否有数据:去后台“自定义表单” -> “管理表单数据”,看看是否真的有提交的记录。
  • 检查字段名:确保 [field:字段名/] 中的“字段名”和你后台添加字段时填写的“字段名”完全一致,区分大小写。
  • 检查 channelid:确保 channelid 的值正确。-1 是通用方法,如果不行,请尝试使用你在“频道管理”中查到的具体ID。

问题2:如何让提交的数据在前台显示为“待审核”?

默认情况下,自定义表单提交的数据是直接显示的,如果你需要审核功能,需要修改代码。

  1. 修改表单提交代码:找到后台生成的表单代码,找到 <form> 标签,在里面添加一个隐藏的 ischeck 字段。

    <input type="hidden" name="ischeck" value="0" />
    • value="0" 表示未审核,value="1" 表示已审核。
  2. 修改调用标签:在调用数据时,增加一个条件,只显示已审核的数据。

    {dede:arclist channelid='-1' row='5' orderby='id' orderway='desc'}
      {if $fields['ischeck'] == 1}
        <li>
            <!-- 你的显示内容 -->
        </li>
      {/if}
    {/dede:arclist}

    注意:这种方法需要你的模板引擎支持在 arclist 内部使用 if 判断,更稳妥的方法是修改织梦的源文件,但这比较复杂,对于大多数用户,直接在前端判断 ischeck 值是一个可行的方案。

技巧:自定义表单的CSS样式

给表单和列表数据添加CSS,可以让它们更美观。

<!-- 表单样式 -->
<style>
    .my-form { max-width: 600px; margin: 20px auto; }
    .my-form .form-group { margin-bottom: 15px; }
    .my-form label { display: block; margin-bottom: 5px; font-weight: bold; }
    .my-form input[type="text"], .my-form textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; }
    .my-form textarea { height: 100px; }
    .my-form button { background-color: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; }
</style>
<!-- 列表样式 -->
<style>
    .message-item { border: 1px solid #eee; padding: 15px; margin-bottom: 15px; border-radius: 5px; }
    .message-item h4 { color: #333; }
    .message-item .tel { color: #666; font-size: 0.9em; }
    .message-item .content { margin: 10px 0; }
    .message-item .time { color: #999; font-size: 0.8em; text-align: right; }
</style>

将以上CSS代码放在你的HTML模板的 <head> 标签内即可。


  1. 创建表单:后台 -> 核心 -> 自定义表单,添加字段并生成代码。
  2. 提交数据:将生成的表单代码复制到前端页面,供用户填写和提交。
  3. 调用数据
    • 简单调用:使用 {dede:arclist channelid='-1'} 在任意页面展示少量数据。
    • 列表调用:使用 {dede:list} 创建专门的列表页,实现分页展示。
  4. 调试与美化:检查字段名、channelid 等关键信息,并使用CSS美化你的表单和列表。

希望这份详细的教程能帮助你成功地在织梦中调用自定义表单!如果在操作中遇到任何问题,可以随时提问。

-- 展开阅读全文 --
头像
织梦自定义表单内容如何调用?
« 上一篇 今天
织梦后台模板UTF-8如何正确设置?
下一篇 » 今天

相关文章

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