如何从Facets-CheckBox Group中获取选中的值?

问题描述 投票:0回答:1

我在“120 - 机场分面搜索”页面上使用 ORACLE APEX“示例地图”示例。 我需要从 Facet“P120_STATE”(它是一个复选框组)获取选中的选项,并将此选中的值放入名为“CHECKED_STATES”的文本项中。 我不知道如何获取此方面复选框组中的选中值。 我需要获取这些检查值以在另一个 SQL 命令中使用,例如:

select CITIES.ID as ID, CITIES.NAME as NAME, CITIES.STATE_CODE as STATE_CODE from CITIES CITIES where STATE_CODE IN ( :CHECKED_STATES )

checkbox oracle-apex facet checked
1个回答
0
投票

APEX 在后台存储复选框组中选定值的方式是创建一个隐藏的输入字段,其值是您在分面搜索的Identification下给出的值。

P120_STATE里面有什么?

页面项

P120_STATE
内,您的值将是一个冒号分隔的字符串。如果您的复选框选项选择了值 1、2、3,它将显示为:
1:2:3

现在怎么办?

然后,您需要将冒号分隔的字符串转换为子查询或表达式列表,您可以在 IN 子句中处理它们。例如,下面我将把冒号分隔的字符串转换为查询。

select * from table(apex_string.split(:P120_STATE, ':'))

从这里,我可以使用 IN 子句将上述内容包含在我的原始查询中。例如,(忽略您的额外页面项目)

select 
   CITIES.ID as ID, 
   CITIES.NAME as NAME, 
   CITIES.STATE_CODE as STATE_CODE 
from CITIES CITIES where STATE_CODE 
IN ( select * from table(apex_string.split(:P120_STATE, ':')) )

如果没有更新:

这是一个单独的问题,但我将提供一个完全有效的答案。对分面搜索 (P120_STATE) 进行更改后,您需要添加动态操作。

  1. 在动态操作下,选择更改。选择项目。在 Item(s)

     下设置 
    P120_STATE

  2. 在操作下,添加一个 TRUE 操作,它将为您的页面项目设置值

    CHECKED_STATES

  3. 对于您的查询,您需要在

    要提交的页面项目
    下传递CHECKED_STATES

© www.soinside.com 2019 - 2024. All rights reserved.