概述
NueForm 中的变量让您创建动态、个性化的表单体验。您可以在问题标题、描述、欢迎页面和感谢页面中使用 {variableName} 替换语法引用受访者答案、URL 参数和自定义表单变量。
变量类型
NueForm 支持三种类型的变量:
1. 答案变量
答案变量捕获受访者对特定问题的回答,并使其可在后续问题中使用。
如何设置:
- 在表单构建器中选择一个问题。
- 在问题设置中找到答案变量字段。
- 输入变量名称(例如
name、company、rating)。 - 该问题的受访者答案现在存储为
{name}、{company}或{rating}。
示例:
- 问题 1:"您的名字是什么?"(答案变量:
name) - 问题 2 标题:"很高兴认识您,{name}!今天是什么让您来到这里?"
当受访者在问题 1 中输入"Sarah"时,问题 2 将显示:"很高兴认识您,Sarah!今天是什么让您来到这里?"
值转换:
| 答案类型 | 存储为 |
|---|---|
| 文本(字符串) | 直接使用文本值 |
| 数字 | 数值转为字符串 |
| 布尔值(是/否) | "true" 或 "false" |
| 数组(多选) | 逗号分隔的值(例如 "选项 A, 选项 B") |
| 对象(联系信息、地址) | JSON 字符串 |
| Null/undefined | 空字符串 |
2. URL 变量
URL 变量是通过 URL 查询参数传递给表单的值。它们在表单加载时立即可用,在任何问题被回答之前。
如何使用:
在表单 URL 后附加查询参数:
https://nueform.io/f/my-form?firstName=John&company=Acme&source=email
这些参数自动作为变量可用:
{firstName}解析为 "John"{company}解析为 "Acme"{source}解析为 "email"
用例:
- 使用已知数据预填表单字段。
- 个性化问候:"嗨 {firstName},我们有一些问题想问您。"
- 在回复数据中跟踪来源。
- 使用基于 URL 参数的起始逻辑跳转路由受访者。
URL 变量也可用于逻辑跳转条件。在条件字段中使用 url: 前缀引用变量名(例如 url:source)。URL 变量查找支持不区分大小写的回退,因此 ?FirstName=John 将匹配 url:firstname 上的条件。
3. 表单变量
表单变量是具有名称、类型和默认值的预定义变量。它们在表单级别定义,可以通过逻辑跳转中的变量操作进行修改。
如何定义:
表单变量在表单的变量定义中定义,具有以下属性:
| 属性 | 描述 |
|---|---|
| 名称 | 变量名称(例如 score、category、is_qualified)。 |
| 类型 | number 或 string。 |
| 默认值 | 表单加载时的初始值。 |
如何修改:
表单变量通过逻辑跳转上的变量操作修改。当逻辑跳转的条件匹配时,其关联的变量操作会执行:
| 操作 | 描述 | 示例 |
|---|---|---|
set | 替换变量的值。 | 将 category 设为 "premium" |
add | 向变量添加数值。 | 向 score 加 10 |
subtract | 从变量减去数值。 | 从 score 减 5 |
示例:构建分数计算器
- 定义表单变量:
score(类型:number,默认值:0)。 - 在每个问题上添加带有变量操作的逻辑跳转:
- 如果评分 >= 4,向
score加 10。 - 如果评分 >= 2,向
score加 5。
- 如果评分 >= 4,向
- 在感谢页面上:"您的分数是 {score}(满分 50)。"
替换语法
{variableName} 语法在以下位置有效:
| 位置 | 支持 |
|---|---|
| 问题标题 | 是 |
| 问题描述 | 是 |
| 欢迎页面标题 | 是 |
| 欢迎页面描述 | 是 |
| 感谢页面标题 | 是 |
| 感谢页面描述 | 是 |
| 表单标题 | 是 |
| 表单描述 | 是 |
| 选项标签 | 否 |
| 按钮文本 | 否 |
| 二维码 URL 模板 | 是 |
替换工作原理
- 系统扫描文本中的
{variableName}模式(单花括号内包含字符)。 - 在当前变量映射中查找变量名称。
- 如果找到,标记将被替换为变量的值。
- 如果未找到,标记将被替换为空字符串。
变量名称使用单花括号 {name}。不要将其与 Markdown 内联字段语法混淆,后者使用双花括号 {{type:label}}。这两种语法是故意不同的,不会冲突。
变量检测
NueForm 通过扫描以下内容自动检测表单中引用的所有变量:
- 所有文本字段(标题、描述、欢迎/感谢页面)中的
{variableName}标记。 - 逻辑跳转条件中以
url:为前缀的字段。 - 逻辑跳转操作中的变量名称。
- 问题上的
answerVariable声明。 - 表单级别的变量定义。
这种全面扫描产生一个排序的、去重的所有变量名称列表。
变量解析顺序
解析 {variableName} 标记时,NueForm 按以下顺序检查变量:
- URL 变量 -- 通过表单 URL 传递。
- 答案变量 -- 由配置了
answerVariable的问题的受访者答案设置。 - 表单变量 -- 在表单级别定义并通过逻辑跳转操作修改。
如果相同的变量名称存在于多个来源中,URL 变量优先(因为它们是传递给替换函数的来源,与表单/答案变量合并在一起)。
示例
个性化欢迎
URL:https://nueform.io/f/feedback?name=Sarah&product=Widget
欢迎标题:"嗨 {name}!" 欢迎描述:"我们很想听听您对 {product} 的看法。"
结果:"嗨 Sarah!" / "我们很想听听您对 Widget 的看法。"
动态跟进问题
问题 1:"您的职位是什么?"(答案变量:role) 问题 2:"作为 {role},您面临的最大挑战是什么?"
计算分数显示
表单变量:score(number,默认值:0) 逻辑跳转操作:根据答案添加分数 感谢描述:"您获得了 {score} 分!感谢完成测验。"
使用 URL 变量进行条件路由
URL:https://nueform.io/f/survey?plan=enterprise
起始逻辑跳转:
- 条件:
url:planequals"enterprise" - 目标:跳转到企业版专属问题
- 操作:将
plan_name设为"Enterprise"
最佳实践
- 使用描述性名称:选择清晰表明存储内容的变量名称(例如用
customer_name而非n)。 - 设置默认值:对于表单变量,始终提供有意义的默认值,以防变量从未被修改。
- 使用 URL 参数测试:使用 URL 变量时,用各种参数组合测试表单以确保所有路径正常工作。
- 优雅处理缺失变量:如果 URL 变量可能未提供,请设计文本使其在变量解析为空字符串时仍然通顺。