【问题标题】:Oracle Apex - Select list populates text fieldOracle Apex - 选择列表填充文本字段
【发布时间】:2013-02-27 17:18:40
【问题描述】:

我使用的是 Oracle Apex 4.2。我有一个选择列表和一个文本字段。我正在尝试创建一个应该足够简单的动态动作,但我不知道该怎么做。基本上取决于用户从选择列表中的值列表中选择的值,然后应该填充文本字段。比如:

假设选择列表让用户可以选择“动物”、“汽车”、“人”。如果用户选择“动物”,则文本字段应立即具有值“猫”。如果用户选择“汽车”,则文本字段应立即具有值“丰田”。如果用户选择“Person@”,则文本字段应立即具有值“jim”等。

我将如何进行这种动态操作?

谢谢, 斯蒂芬。

【问题讨论】:

  • 这些列表是固定的,还是在数据库中查找的?
  • 嗨@PaulWalker,选择列表中的值列表是通过查询表获得的

标签: list select dynamic oracle-apex


【解决方案1】:

使用以下属性创建一个新的动态操作

主要属性

  • 事件:更改
  • 选择类型:项目
  • 项目:[选择列表]
  • 条件:无条件

真正的行动

  • 操作:执行 PL/SQL 代码
  • 当事件结果为真时触发
  • PL/SQL 代码:

    选项 1 - 使用查找表

    select LOOKUP_VALUE
    into :P1_TEXT
    from LOOKUP_TABLE
    where original_value = :P1_SELECT_LIST;
    

    选项 2 - 使用硬编码值

    CASE upper(:P1_SELECT_LIST)
        WHEN 'ANIMAL' THEN :P1_TEXT := 'cat';
        WHEN 'CAR' THEN :P1_TEXT := 'toyota';
        WHEN 'PERSON' THEN :P1_TEXT := 'jim';
        ELSE :P1_TEXT := null;
    END CASE;
    
  • 要提交的页面项目:[P1_SELECT_LIST]

  • 要返回的页面项目 [P1_TEXT]

【讨论】:

  • 很好的答案,但是当您发布此内容时,并未指定需要查找表。因此,您的 javascript 解决方案将无法使用,您需要用 ajax 代码替换它。但是,PLSQL 选项正是@StephenWalsh 所需要的,除了在 PLSQL 代码中应该有一个执行实际查找的 SQL。稍微改变一下,你就会得到我的投票:)
  • 感谢@RohanM 我首先尝试了 PL/SQL 选项,它运行良好,谢谢大家!
  • 不用担心,很高兴我能帮上忙。
  • 谢谢汤姆,我按照建议整理了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
相关资源
最近更新 更多