如何在安企CMS中构建和显示在线留言表单及其自定义字段?

📅 👁️ 60

安企CMS提供了一套强大而灵活的在线留言功能,不仅允许您构建基础的联系表单,还能根据业务需求深度定制各种字段,从而收集更精准的用户反馈。下面,我们将一起探索如何在安企CMS中轻松地构建和显示这些留言表单。

一、在安企CMS后台配置留言表单与自定义字段

要开始构建您的在线留言表单,首先需要进入安企CMS的后台管理界面。

  1. 访问留言管理模块: 登录后台后,请导航至左侧菜单的“功能管理”区域,然后点击“网站留言”。这里是所有留言相关设置的集中地。
  2. 默认字段与自定义字段: 安企CMS会为留言表单提供一些核心字段,例如用户姓名(user_name)、联系方式(contact)和留言内容(content)。除了这些基本信息,您可以根据实际业务需求,添加无限多的自定义字段。
    • 添加自定义字段: 在“网站留言”页面,您会找到添加新字段的选项。点击进入后,需要配置以下几项关键信息:
      • 字段名称: 这是用户在前台界面看到的字段标签,例如“您的行业”、“选择服务类型”等。请确保其清晰易懂。
      • 调用字段(FieldName): 这是在模板代码中引用该字段的唯一标识符。建议使用英文小写字母和下划线组合,例如 your_industry。一旦设定,不建议随意更改,因为这会影响到前端模板的调用。
      • 字段类型: 安企CMS提供了多种字段类型以满足不同数据的收集需求,包括:
        • 单行文本(text): 适用于短文本输入,如姓名、公司名称。
        • 数字(number): 仅限数字输入,如年龄、预算金额。
        • 多行文本(textarea): 适用于长文本输入,如详细描述、建议。
        • 单项选择(radio): 用户只能从预设选项中选择一个。
        • 多项选择(checkbox): 用户可以从预设选项中选择多个。
        • 下拉选择(select): 用户通过下拉菜单选择一个选项。
      • 是否必填: 勾选此项,则该字段在前台提交时必须填写。
      • 默认值/选项值: 对于文本、数字和多行文本类型,这里可以设置一个默认提示值。对于单选、多选和下拉选择类型,这里则需要输入所有可选的选项,每个选项占一行。

通过这种方式,您可以构建出高度定制化的留言表单,无论是收集用户所在行业、具体需求,还是偏好的联系时间,都能轻松实现。

二、在前端模板中展示留言表单

后台配置完成后,下一步就是将精心设计的留言表单呈现在您的网站前台。安企CMS采用了灵活的模板标签系统,让这一过程变得简单。

  1. 选择合适的模板文件: 您的在线留言表单通常会放置在一个专门的页面上。根据安企CMS的模板约定,默认的在线留言页面文件是 guestbook/index.html。您也可以选择将其嵌入到其他单页面(例如“联系我们”)或任何需要表单的页面中。

  2. 使用 guestbook 标签获取字段: 在选定的模板文件中,您可以使用安企CMS提供的 guestbook 标签来获取后台配置的所有留言字段。这个标签会将所有字段作为一个数组对象传递给您。

    <form method="post" action="/guestbook.html" id="guestbookForm">
        {% guestbook fields %}
            {# 在这里循环输出每个字段 #}
        {% endguestbook %}
    
        {# 留言提交按钮 #}
        <div>
            <button type="submit">提交留言</button>
            <button type="reset">重置</button>
        </div>
    </form>
    

    action="/guestbook.html" 指明了表单提交的后台处理地址。

  3. 循环渲染表单字段: fields 变量是一个数组,其中包含了您在后台配置的每一个字段的信息。您可以通过 for 循环遍历这个数组,并根据每个字段的类型动态生成相应的HTML表单元素。

    ”`twig

    {% guestbook fields %}
        {% for item in fields %}
        <div class="form-group">
            <label for="{{ item.FieldName }}">{{ item.Name }} {% if item.Required %}<span class="text-danger">*</span>{% endif %}</label>
            <div>
                {% if item.Type == "text" or item.Type == "number" %}
                <input type="{{ item.Type }}" id="{{ item.FieldName }}" name="{{ item.FieldName }}" {% if item.Required %}required{% endif %} placeholder="{{ item.Content }}" class="form-control">
                {% elif item.Type == "textarea" %}
                <textarea id="{{ item.FieldName }}" name="{{ item.FieldName }}" {% if item.Required %}required{% endif %} placeholder="{{ item.Content }}" rows="5" class="form-control"></textarea>
                {% elif item.Type == "radio" %}
                    {% for val in item.Items %}
                    <input type="radio" id="{{ item.FieldName }}_{{ forloop.Counter }}" name="{{ item.FieldName }}" value="{{ val }}" {% if item.Required and forloop.Counter == 1 %}required{% endif %}>
                    <label for="{{ item.FieldName }}_{{ forloop.Counter }}">{{ val }}</label>
                    {% endfor %}
                {% elif item.Type == "checkbox" %}
                    {% for val in item.Items %}
                    <input type="checkbox" id="{{ item.FieldName }}_{{ forloop.Counter }}" name="{{ item.FieldName }}[]" value="{{ val }}" {% if item.Required and forloop.Counter == 1 %}required{% endif %}>
                    <label for="{{ item.FieldName }}_{{ forloop.Counter }}">{{ val }}</label>
                    {% endfor %}
                {% elif item.Type == "select" %}
                <select id="{{ item.FieldName }}" name="{{ item.FieldName }}" {% if item.Required %}required{% endif %} class="form-control">
                    {% for val in item.Items %}
                    <option value="{{ val }}">{{ val }}</option>
                    {% endfor %}
                </select>
                {% endif %}
            </div>
        </div>
        {% endfor %}
    
        {# 集成验证码,增强安全性 #}
        <div class="form-group captcha-group">
            <label for="captcha">验证码 <span class="text-danger">*</span></label>
            <div class="d-flex">
                <input type="hidden" name="captcha_id" id="captcha_id">
                <input type="text" name="captcha" required placeholder="请填写验证码" class="form-control captcha-input">
                <img src="" id="get-captcha" class="captcha-img" alt="验证码">
            </div>
            <script>
                document.getElementById('get-captcha').addEventListener("click", function () {
                  fetch('/api/captcha')
                          .then(response => response.json())
                          .then(res => {
                            document.getElementById('captcha_id').value = res.data.captcha_id
    

相关文章

安企CMS如何显示网站访客的评论列表及其回复关系?

在构建和维护一个活跃的网站时,访客互动是至关重要的一环。评论系统不仅能提升网站内容的讨论热度,增强用户粘性,还能为网站带来新的内容并对搜索引擎优化(SEO)产生积极影响。安企CMS(AnQiCMS)深知这一点,因此其内置的评论功能,无论是显示评论列表、处理回复关系,还是进行评论管理,都提供了强大而灵活的支持。 ### 核心功能概览:安企CMS

2025-11-08

如何在安企CMS模板中实现自定义导航菜单的层级显示?

在安企CMS中实现自定义导航菜单的层级显示,是一个提升网站用户体验和内容组织性的重要环节。AnQiCMS提供了灵活的后台配置和强大的模板标签,让用户能够轻松构建出结构清晰、易于浏览的多级导航菜单。 ### 后台设置自定义导航菜单 要实现导航菜单的层级显示,首先需要在AnQiCMS的后台进行相应的配置。 在后台管理界面,找到“后台设置”菜单下的“导航设置”选项

2025-11-08

安企CMS是否支持内容中Markdown格式的文本渲染为HTML?

安企CMS作为一款高效、可定制的内容管理系统,在内容创作与展示方面一直致力于提供现代化且便捷的解决方案。对于许多内容创作者而言,Markdown以其简洁、高效的特性,已成为日常写作不可或缺的工具。那么,安企CMS是否支持Markdown格式的文本并将其渲染为HTML,以在前端页面上正常显示呢?答案是肯定的,安企CMS提供了对Markdown的完善支持,并且集成度高,使用起来非常流畅。 首先

2025-11-08

如何在安企CMS中设置网站的SEO标题、关键词和描述(TDK)在搜索结果中显示?

## 优化搜索可见性:安企CMS中网站SEO标题、关键词和描述(TDK)的精细化设置指南 在数字世界中,网站的可见性是其成功的关键。当用户通过搜索引擎寻找信息时,您的网站在搜索结果中的展示方式,直接影响着他们是否会点击进入。这其中,网站的SEO标题(Title)、关键词(Keywords)和描述(Description),也就是我们常说的TDK,扮演着至关重要的角色

2025-11-08

安企CMS如何处理和显示远程图片,是下载到本地还是直接引用?

在网站内容管理中,图片的有效处理对于提升页面加载速度、用户体验乃至SEO表现都至关重要。安企CMS(AnQiCMS)在处理内容中引用的远程图片时,为用户提供了灵活且实用的策略,主要体现在两种方式上:将其下载到本地服务器进行管理,或者直接引用远程图片的原始链接。这两种方式各有侧重,满足了不同运营场景的需求。 **安企CMS对远程图片的核心处理机制** 安企CMS在内容编辑器中遇到远程图片链接时

2025-11-08

如何在安企CMS中显示指定ID的单页面内容,如“关于我们”?

在安企CMS中,无论是展示“关于我们”这样的企业简介,还是“联系方式”、“服务条款”等静态内容,单页面功能都是非常实用的。它允许您创建独立、不属于任何分类的页面,并且提供了灵活的方式来控制这些页面的显示方式。 要让安企CMS显示指定ID的单页面内容,您主要会用到系统内置的模板标签和后台的页面管理功能。这使得在网站的任何位置,或者为特定单页面定制专属布局变得非常便捷。 ### 1.

2025-11-08

安企CMS是否支持文章内容中的数学公式和流程图的显示?

在内容创作中,尤其是在技术文章、学术论文或项目文档里,我们经常需要展示复杂的数学公式和清晰的流程图,以增强内容的专业性和可读性。对于安企CMS(AnQiCMS)的用户而言,这确实是一个非常实际的需求。那么,安企CMS是否支持在文章内容中显示数学公式和流程图呢?答案是肯定的,而且实现起来并不复杂。 安企CMS为内容创作者提供了灵活多样的内容管理方式,其核心之一便是内置的Markdown编辑器

2025-11-08

如何在安企CMS中获取并显示友情链接列表?

在网站运营中,友情链接(也称作友链)是提升网站权重、增加外部引流、促进网站间互动的重要组成部分。一个精心维护的友情链接列表,不仅能增加网站的外部链接,对SEO有积极作用,还能为用户提供更多相关信息,提升用户体验。安企CMS深知其重要性,提供了直观友好的后台管理界面和便捷的模板调用方式,让您能轻松地获取并显示友情链接列表。 接下来,我们将详细介绍如何在安企CMS中实现这一功能。 --- ##

2025-11-08