如何在AnQiCMS模板中获取并显示网站留言表单的自定义字段,并确保其正确提交?

📅 👁️ 61

在安企CMS中,为网站的留言表单添加和管理自定义字段,不仅能帮助我们收集更具体、更有针对性的客户信息,还能显著提升网站的互动性和数据收集效率。安企CMS以其灵活的内容模型和易于扩展的特性,让这一过程变得十分便捷。

这篇文章将引导您如何在安企CMS的模板中获取并展示留言表单的自定义字段,并确保这些字段能被正确提交。

第一步:在安企CMS后台定义自定义留言字段

首先,我们需要在安企CMS的后台管理系统中,为留言功能添加所需的自定义字段。这就像为您的表单设计问题,确保您能收集到想要的信息。

  1. 进入网站留言管理: 登录安企CMS后台,导航到“功能管理”菜单,然后点击“网站留言管理”。
  2. 添加自定义字段: 在这里,您会看到一个“添加字段”或类似的按钮。点击它,就可以开始定义新的字段了。
  3. 配置字段属性:
    • 参数名: 这是后台显示给您看的字段名称,例如“您的行业”、“产品类型”。
    • 调用字段(FieldName): 这是在模板中引用此字段的唯一标识符,通常建议使用英文字母,如yourIndustryproductType请务必记住这个名称,它在模板中会用到。
    • 字段类型: 安企CMS提供了多种字段类型来满足不同的输入需求:
      • 单行文本 (text): 适用于姓名、电话、邮箱等简短信息。
      • 数字 (number): 仅限输入数字,例如数量、预算。
      • 多行文本 (textarea): 适用于较长的内容,如具体需求、留言详情。
      • 单项选择 (radio): 用户只能选择一个选项,如性别、同意协议。
      • 多项选择 (checkbox): 用户可以选择多个选项,如感兴趣的服务。
      • 下拉选择 (select): 以下拉菜单形式供用户选择一个选项。
    • 是否必填: 根据需求勾选,如果勾选,用户在提交表单时必须填写此字段。
    • 默认值: 为字段提供一个预设值或提示文本。对于单选、多选和下拉选择,这里就是定义可选项的地方,每行输入一个选项。

完成字段定义后,保存您的设置。现在,这些自定义字段就为在模板中使用做好了准备。

第二步:在模板中获取并渲染自定义字段

接下来,我们将修改安企CMS的模板文件,把这些自定义字段呈现在网站前端的留言表单中。通常,留言表单位于您的模板目录下的guestbook/index.html文件。

安企CMS的模板使用的是类似Django模板引擎的语法。要获取留言表单的自定义字段,我们需要使用内置的guestbook标签。

  1. 找到留言表单模板文件: 在您的模板目录中,找到用于展示留言表单的HTML文件(例如:template/您的模板名/guestbook/index.html)。

  2. 使用guestbook标签获取字段: 在表单的<body>或适当位置,使用{% guestbook fields %}标签来获取所有已定义的留言字段。fields变量将是一个包含所有字段信息的数组对象。

    <form method="post" action="/guestbook.html">
        {# 这里将用于展示默认的留言字段和您自定义的字段 #}
        {% 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 }}" name="{{ item.FieldName }}" id="{{ item.FieldName }}"
                           {% if item.Required %}required{% endif %}
                           placeholder="{{ item.Content }}" class="form-control">
                    {% elif item.Type == "textarea" %}
                    <textarea name="{{ item.FieldName }}" id="{{ 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" name="{{ item.FieldName }}" value="{{ val }}" id="{{ item.FieldName }}-{{ loop.index }}"
                               {% if item.Required %}required{% endif %} class="form-check-input">
                        <label for="{{ item.FieldName }}-{{ loop.index }}" class="form-check-label">{{ val }}</label>
                        {%- endfor %}
                    {% elif item.Type == "checkbox" %}
                        {%- for val in item.Items %}
                        <input type="checkbox" name="{{ item.FieldName }}[]" value="{{ val }}" id="{{ item.FieldName }}-{{ loop.index }}"
                               {% if item.Required %}required{% endif %} class="form-check-input">
                        <label for="{{ item.FieldName }}-{{ loop.index }}" class="form-check-label">{{ val }}</label>
                        {%- endfor %}
                    {% elif item.Type == "select" %}
                    <select name="{{ item.FieldName }}" id="{{ 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 %}
        {% endguestbook %}
    
        {# 假设您还会有一些固定的留言字段,例如联系方式和留言内容 #}
        <div class="form-group">
            <label for="user_name">您的称呼 <span class="text-danger">*</span></label>
            <input type="text" name="user_name" id="user_name" required placeholder="请填写您的称呼" class="form-control">
        </div>
        <div class="form-group">
            <label for="contact">联系方式 <span class="text-danger">*</span></label>
            <input type="text" name="contact" id="contact" required placeholder="手机号/邮箱/微信" class="form-control">
        </div>
        <div class="form-group">
            <label for="content">留言内容 <span class="text-danger">*</span></label>
            <textarea name="content" id="content" required placeholder="请输入您的留言内容" rows="6" class="form-control"></textarea>
        </div>
    
        {# 提交按钮 #}
        <div class="form-group">
            <button type="submit" class="btn btn-primary">提交留言</button>
            <button type="reset" class="btn btn-secondary">重置</button>
        </div>
    </form>
    

    代码说明:

    • {% guestbook fields %}会把后台设置的所有自定义字段作为fields数组提供给模板。 *

相关文章

如何在AnQiCMS模板中显示文章的评论列表,包括多级回复和审核状态标识?

在安企CMS中,让您的文章页面不仅仅是内容的展示,更是一个活跃的交流平台,评论功能便是连接内容与读者的桥梁。理解如何在模板中灵活地显示文章的评论列表,包括多级回复和清晰的审核状态标识,对于构建互动性强的网站至关重要。 ### 评论功能的基石:确保后台配置就绪 在深入模板代码之前,我们首先需要确认评论功能已在安企CMS后台启用。您可以前往“功能管理”菜单,找到“内容评论”选项

2025-11-07

如何在AnQiCMS中配置伪静态URL规则,以优化内容的显示路径和SEO友好性?

在网站运营中,网址(URL)不仅是页面内容的地址,更是搜索引擎理解、用户识别和品牌建设的重要组成部分。一个清晰、有意义的URL结构,即所谓的“伪静态”或“静态化”URL,对于提升网站的SEO表现和用户体验至关重要。AnQiCMS作为一款注重SEO友好的内容管理系统,提供了灵活多样的伪静态URL配置功能,帮助我们更好地优化内容的显示路径。 ### 为什么选择伪静态URL

2025-11-07

AnQiCMS模板如何进行简单的算术运算(`+ - * /`)并显示结果?

在AnQiCMS模板中,我们经常需要展示网站内容和数据。但有时,我们不仅仅需要展示存储好的数据,还需要对这些数据进行一些简单的处理,比如计算商品总价、统计页面加载进度百分比或者对某个数值进行累加等等。好在AnQiCMS的模板系统对这类需求提供了非常友好的支持,它内置了强大的表达式处理能力,让我们可以在模板中直接进行加、减、乘、除等基本的算术运算,并实时显示结果

2025-11-07

如何使用`default`过滤器为可能为空的变量设置默认显示值?

在网站内容管理中,我们常常会遇到这样一种情况:某个数据变量在某些页面或某些特定条件下可能没有值,也就是“空”的。如果模板直接输出这些空白变量,页面上就会出现难看的空缺,不仅影响美观,也可能让访问者感到困惑。为了避免这种尴尬,安企CMS提供了一个非常实用的工具——`default`过滤器,它可以帮助我们为这些可能为空的变量设置一个优雅的默认显示值。 ### 为什么需要为变量设置默认显示值

2025-11-07

AnQiCMS如何通过内置功能实现防采集干扰码,以保护原创内容在前端的显示?

在数字内容日益成为核心资产的今天,如何有效保护原创内容免受恶意采集和盗用,已成为广大网站运营者和内容创作者面临的共同挑战。辛辛苦苦创作的文章、产品描述,转眼间便可能出现在其他网站,不仅稀释了原创内容的价值,也可能对网站的搜索引擎排名造成不利影响。安企CMS(AnQiCMS)深知这一痛点,因此在系统设计之初,便内置了防采集干扰码功能,旨在为原创内容在前端显示上筑起一道巧妙而坚固的屏障。 ###

2025-11-07

如何在AnQiCMS中正确渲染Markdown内容,并支持显示数学公式和流程图?

在现代内容管理中,提供丰富且结构化的内容已成为提升用户体验和信息传达效率的关键。尤其是对于技术类博客、产品文档或数据分析报告,能够直观地展示代码、数学公式和复杂的流程图,无疑能让内容更具吸引力和可读性。AnQiCMS作为一个高效、可定制的企业级内容管理系统,充分理解这一需求,并提供了完善的Markdown支持,让您能够轻松实现这些高级内容展示。 接下来

2025-11-07

如何通过`jsonLd`标签在AnQiCMS页面中插入自定义的结构化数据以增强搜索引擎显示效果?

在构建和优化网站时,我们总希望能让搜索引擎更深入地理解我们页面的内容,从而在搜索结果中获得更好的展示效果。结构化数据,尤其是以JSON-LD格式呈现的结构化数据,正是实现这一目标的重要工具。安企CMS(AnQiCMS)作为一个注重SEO优化的内容管理系统,为我们插入自定义JSON-LD提供了灵活而强大的支持。 ### 理解结构化数据与安企CMS的优势 搜索引擎通过爬虫抓取网页内容

2025-11-07

AnQiCMS如何通过模板目录结构实现针对PC和移动端的不同内容显示和适配?

在当今移动互联网占据主导地位的时代,让网站内容在不同设备上都能完美展现,是每位网站运营者都非常关注的核心议题。AnQiCMS在这一方面提供了极其灵活且强大的解决方案,让我们能够轻松地针对PC端和移动端的用户,提供优化过的显示和交互体验。 AnQiCMS实现PC与移动端内容适配的关键,在于其精心设计的模板目录结构和灵活的网站模式选择。这不仅仅是简单的响应式布局

2025-11-07