首页
/ SQLPage表单组件中动态设置Select默认值的实现方法

SQLPage表单组件中动态设置Select默认值的实现方法

2025-07-04 18:29:50作者:沈韬淼Beryl

在SQLPage项目开发过程中,表单中的select组件默认值设置是一个常见需求。本文详细介绍如何根据URL参数动态设置select组件的默认选中项。

问题背景

开发者在构建表单时,经常需要根据URL传递的参数来预选select组件的选项。例如,当访问create_activity.sql?activityKey=3时,希望表单中的select组件能自动选中ID为3的选项。

常见误区

初学者可能会尝试直接使用URL参数变量作为value属性值:

$activityKey as value

这种方法通常不会生效,因为value属性需要的是静态值,而不是动态变量。

正确实现方式

正确的做法是在options数组的JSON对象中使用selected属性:

JSON_ARRAYAGG(
    JSON_OBJECT(
        "value", id,
        "label", value,
        "selected", $activityKey::int = id
    )
) as options

技术原理

  1. JSON_OBJECT函数创建每个选项的配置对象
  2. selected属性设置为布尔值,当URL参数值与当前选项ID匹配时为true
  3. ::int确保参数值转换为整数类型进行比较
  4. JSON_ARRAYAGG将所有选项聚合为数组

完整示例

select 
   'form' as component,
   'Add Activity' as validate,
   'GET' as method,
   'create_activity.sql' as action;

select 
    'activity_key' as name,
    'Activity Key' as label,
    'select' as type,
    3 as width,
    true as required,
    JSON_ARRAYAGG(
        JSON_OBJECT(
            "value", id,
            "label", value,
            "selected", $activityKey::int = id
        )
    ) as options,
    true as searchable
from activity_keys;

注意事项

  1. 确保URL参数名称与代码中的变量名一致
  2. 类型转换很重要,特别是当ID是整数类型时
  3. 此方法同样适用于其他需要动态设置默认值的场景
登录后查看全文
热门项目推荐
相关项目推荐