如何获取复选框组中复选框的显示值?

How get display value of checkbox in a checkbox group?

我正在使用 APEX 21.1。我有一个复选框组,其值列表是使用查询检索的...

select disease, id from history;

查询returns多个复选框。我有另一个文本区域项目。我需要在选中时获取任何复选框的显示值,并将项目 HISTORY 设置为该值。如何操作?

如果您提供了一些示例页面项目名称和示例数据,描述操作方法会容易得多。因此,让我们调用您的复选框组 P10_CHECKBOX 和您的文本区域 P10_TEXT.

通常,您的复选框组会将项目 ID 保存为冒号分隔的列表,如下所示:3:4:5

要显示相应的显示值,请对您的项目进行动态更改 P10_CHECKBOX

然后,使用 Execute PL/SQL Code 类型的 action 来获取项目的显示值。 代码可能如下所示:

select listagg(disease,chr(10)) within group (order by disease) into :P10_TEXT
from history h
join table(apex_string.split_numbers(:P10_CHECKBOX,':')) t on (h.id = t.column_value);

apex_string.split_numbers 会将您的冒号列表转换为实际的“table”,您可以在连接子句中使用列 column_valuelistagg 将进行实际的串联,最多可处理几千个字符。 chr(10) 是一个普通的换行符,将逐行显示您的项目,但任何其他分隔符都可以。

最后一步是在 Items to submit 中设置 P10_CHECKBOX,在 Items to return 中设置 P10_TEXT

现在,只要您点击复选框,文本区域就会立即更新。