如何在网站上显示用户提交的留言表单?

📅 👁️ 59

安企CMS提供了一套高效且灵活的机制,帮助您在网站上轻松地展示和管理用户留言表单。无论是收集用户反馈、咨询,还是简单的互动留言,安企CMS都能让您快速实现这一功能,并根据业务需求进行个性化定制。

了解安企CMS留言功能

在安企CMS的后台管理界面中,您可以在“功能管理”菜单下找到“网站留言”选项。这里是您管理所有留言相关设置的核心区域,包括查看已提交的留言、自定义表单字段、以及配置留言提交后的行为等。

安企CMS的留言表单功能的一大亮点是支持自定义字段。这意味着您可以根据实际需求,添加各种类型的表单元素,如文本框、数字输入、多行文本、单选、多选和下拉选择框等。这些自定义字段将在前端模板中被动态识别和渲染,大大提升了表单的灵活性和适用性。

网站前端模板中,留言表单通常会放置在专门的留言页面,例如默认的 guestbook/index.htmlguestbook.html 文件中。如果您正在开发自定义模板,可以在 /template 目录下的模板文件夹中创建或编辑这些文件。

在模板中展示留言表单

要在网站页面上显示留言表单,我们需要借助安企CMS提供的 guestbook 标签。这个标签会为您准备好在后台配置的所有留言字段信息,并将它们存储在一个名为 fields 的变量中。

以下是在模板中动态生成留言表单的示例代码:

<form method="post" action="/guestbook.html">
{% guestbook fields %}
    {% for item in fields %}
    <div>
        <label>{{item.Name}}</label>
        <div>
            {% if item.Type == "text" || item.Type == "number" %}
            <input type="{{item.Type}}" name="{{item.FieldName}}" {% if item.Required %}required lay-verify="required"{% endif %} placeholder="{{item.Content}}" autocomplete="off">
            {% elif item.Type == "textarea" %}
            <textarea name="{{item.FieldName}}" {% if item.Required %}required lay-verify="required"{% endif %} placeholder="{{item.Content}}" rows="5"></textarea>
            {% elif item.Type == "radio" %}
            {%- for val in item.Items %}
            <input type="{{item.Type}}" name="{{item.FieldName}}" value="{{val}}" title="{{val}}">
            {%- endfor %}
            {% elif item.Type == "checkbox" %}
            {%- for val in item.Items %}
            <input type="{{item.Type}}" name="{{item.FieldName}}[]" value="{{val}}" title="{{val}}">
            {%- endfor %}
            {% elif item.Type == "select" %}
            <select name="{{item.FieldName}}">
                {%- for val in item.Items %}
                <option value="{{val}}">{{val}}</option>
                {%- endfor %}
            </select>
            {% endif %}
        </div>
    </div>
    {% endfor %}
    <div>
        <div>
            <button type="submit">提交留言</button>
            <button type="reset">重置</button>
        </div>
    </div>
</form>

这段代码的核心逻辑是使用 {% for item in fields %} 循环遍历后台定义的每一个留言字段。在循环内部,根据 item.Type 的值(例如 texttextarearadio 等),动态地渲染出相应的 HTML 表单元素。每个表单元素的 name 属性会设置为 item.FieldName,这是后端识别并处理数据的重要依据。item.Required 属性则用于判断该字段是否为必填项,并添加相应的 required 属性。

除了动态生成的自定义字段,留言表单还需要几个基本字段用于用户提交信息:

  • user_name: 用户的名称
  • contact: 用户的联系方式(如手机、邮箱等)
  • content: 留言的具体内容

这些基本字段在上面的动态生成代码中并未直接体现,通常您可以在后台的留言表单设置中进行配置。如果您希望这些字段也以自定义的方式呈现,可以手动在 guestbook 标签循环之外添加这些 inputtextarea 元素,确保它们的 name 属性符合后端要求(例如 name="user_name")。

例如,您可以像这样手动添加基础的用户名和联系方式字段:

<form method="post" action="/guestbook.html">
  <input type="hidden" name="return" value="html"> {# 可选:指定后端返回html格式 #}
  <div>
    <label>您的姓名</label>
    <div>
      <input type="text" name="user_name" required placeholder="请填写您的姓名" autocomplete="off">
    </div>
  </div>
  <div>
    <label>您的联系方式</label>
    <div>
      <input type="text" name="contact" required placeholder="请填写您的手机号或邮箱" autocomplete="off">
    </div>
  </div>
  <div>
    <label>留言内容</label>
    <div>
      <textarea name="content" required placeholder="请输入您的留言" rows="5"></textarea>
    </div>
  </div>
  {# 动态生成的自定义字段,如同上述代码片段 #}
  {% guestbook fields %}
      {# ... 动态字段渲染逻辑 ... #}
  {% endguestbook %}
  <div>
      <button type="submit">提交留言</button>
      <button type="reset">重置</button>
  </div>
</form>

留言表单的提交与验证

留言表单的 action 属性应指向 /guestbook.html,并使用 POST 方法提交。当用户填写并提交表单后,安企CMS会自动接收并处理这些数据。

为了提高网站的安全性,防止垃圾信息提交,强烈建议为留言表单开启验证码功能。

添加验证码 (CAPTCHA)

  1. 后台启用验证码:首先,您需要在安企CMS后台的“后台设置”->“内容设置”中,找到并开启留言评论验证码功能。

  2. 模板集成验证码:在您的留言表单HTML中,找到合适的位置(例如提交按钮上方),插入以下代码片段。这段代码会负责加载并显示验证码图片,并处理验证码的刷新逻辑。

    <div style="display: flex; clear: both">
      <input type="hidden" name="captcha_id" id="captcha_id">
      <input type="text" name="captcha" required placeholder="请填写验证码" class="layui-input" style="flex: 1">
      <img src="" id="get-captcha" style="width: 150px;height: 56px;cursor: pointer;" />
      <script>
        // 普通 JavaScript 版本
        document.getElementById('get-captcha').addEventListener("click", function (e) {
          fetch('/api/captcha')
                  .then(response => {
                    return response.json()
                  })
                  .then(res => {
                    document.getElementById('captcha_id').setAttribute("value", res.data.captcha_id)
                    document.getElementById('get-captcha').setAttribute("src", res.data.captcha)
                  }).catch(err =>{console.log(err)})
        });
        document.getElementById('get-captcha').click(); // 页面加载时自动获取一次验证码
      </script>
      {# 如果您的网站使用 jQuery,可以使用以下代码替换上面的 script 标签内容 #}
      {#
      <script>
        // jQuery 版本
        $('#get-captcha').on("click", function (e) {
          $.get('/api/captcha', function(res) {
            $('#captcha_id').attr("value", res.data.captcha_id)
            $('#get-captcha').attr("src", res.data.captcha)
          }, 'json')
        })
        $('#get-captcha').click();
      </script>
      #}
    </div>
    

集成这段代码后,您的留言表单将要求用户输入验证码,并在提交时进行验证,从而有效减少垃圾信息的干扰。

总结

通过上述步骤,您已经可以在安企CMS网站上成功展示一个功能完备且可定制的用户留言表单。安企CMS的灵活内容模型和强大的模板标签使得这一过程变得直观而高效。利用后台的便捷管理功能,您可以轻松收集和回应用户的宝贵意见和建议,从而更好地与网站访问者进行互动。


常见问题 (FAQ)

Q1: 我想自定义留言表单的字段,并在前台展示,应该怎么操作? A1: 您可以在安

相关文章

如何实现文章评论列表的分页显示功能?

在网站运营中,高效地管理和展示用户评论对于提升用户互动和内容活力至关重要。安企CMS(AnQiCMS)作为一个功能强大的内容管理系统,提供了灵活的模板标签,让我们可以轻松实现文章评论列表的分页显示。本文将详细介绍如何在安企CMS中,通过模板标签实现这一功能,从而为用户提供更佳的浏览体验。 ### 理解评论和分页的核心 在安企CMS的模板体系中,实现文章评论列表的分页显示

2025-11-08

如何利用Tag标签在前端关联并显示相关内容?

在安企CMS中,内容组织和关联是提升网站价值、优化用户体验和搜索引擎表现的关键。除了传统的分类结构,我们还有一个非常强大且灵活的工具——Tag标签。它就像内容的“活索引”,能帮助我们以多维度将分散的内容串联起来,让用户更容易发现他们感兴趣的信息。今天,我们就来聊聊如何在前端充分利用Tag标签,关联并展示我们的精彩内容。 ### Tag标签:灵活的内容关联桥梁 不同于严格的分类体系

2025-11-08

如何在文章详情页显示自定义字段(如作者、来源)的内容?

在网站运营中,文章详情页不仅仅是展示核心内容的场所,更是传递额外信息、提升专业度和用户体验的关键。除了标题和正文,我们常常需要在文章详情页中展示一些自定义字段,比如作者、来源、发布机构、产品型号等。这些信息不仅能丰富文章内容,也有助于提升网站的权威性、可信度,甚至对SEO优化和用户决策产生积极影响。 安企CMS(AnQiCMS)以其灵活的内容模型设计,让这类自定义字段的显示变得非常直观和强大

2025-11-08

如何获取并显示与当前文章相关的推荐文章列表?

在网站运营中,当我们辛辛苦苦创作了一篇文章,自然希望它能被更多读者看到,并引导他们探索更多精彩内容。在文章详情页底部或侧边栏,巧妙地展示与当前文章相关的推荐内容,不仅能显著提升用户的阅读深度和停留时间,还能为搜索引擎优化(SEO)带来诸多益处。安企CMS(AnQiCMS)深知这一需求,提供了极其便捷且功能强大的标签,帮助我们轻松实现这一目标。 ### 巧妙利用 `archiveList`

2025-11-08

如何在前端调用并显示后台设置的友情链接?

安企CMS (AnQiCMS) 提供了一套直观而强大的内容管理功能,其中“友情链接”管理是网站运营中不可或缺的一部分,它不仅能促进网站的SEO表现,还能为用户提供便捷的导航。本篇文章将详细介绍如何在网站前端调用并优雅地展示您在后台设置的友情链接。 ### 友情链接的后台配置 在安企CMS中管理友情链接非常简单。您只需登录后台,找到左侧菜单栏中的“功能管理”模块,点击进入“友情链接”。在这里

2025-11-08

安企CMS的分页标签如何实现内容列表的分页导航显示?

在使用安企CMS(AnQiCMS)构建网站时,当我们需要展示大量内容,例如文章列表、产品列表等,合理的分页导航就显得尤为重要。它不仅能提升用户体验,让访问者更容易浏览和查找内容,也有助于搜索引擎更好地抓取网站。安企CMS提供了非常直观且功能强大的分页标签,让内容列表的分页显示变得轻而易举。 ### 第一步:准备内容列表数据 要实现内容列表的分页显示,首先需要使用 `archiveList`

2025-11-08

如何在页面中嵌入数学公式和流程图,并确保正确渲染显示?

在网站运营中,我们经常需要展示一些专业性较强的内容,比如涉及科学计算的数学公式,或是业务流程说明的复杂流程图。这些内容的传统展示方式往往效率低下,难以维护,也无法提供良好的阅读体验。AnQiCMS 结合其强大的内容管理能力和对 Markdown 的支持,为我们提供了一套优雅的解决方案。通过简单地引入一些外部库,并开启 Markdown 编辑器,我们就能让这些专业内容在网站页面上正确

2025-11-08

如何在网站内容中实现HTML标签的安全输出,避免转义?

在网站内容管理中,尤其当内容包含丰富的格式或来自用户输入时,如何安全地输出 HTML 标签是一个至关重要的问题。安企CMS(AnQiCMS)在设计之初就充分考虑了这一点,其模板引擎默认会对输出的变量进行转义,以有效防范跨站脚本攻击(XSS)等安全风险。 ### 理解模板引擎的默认行为 安企CMS的模板引擎借鉴了Django等主流框架的语法,其核心理念之一就是“安全至上”

2025-11-08