【问题标题】:Oracle Apex Application Item value setting using javascript使用 javascript 设置 Oracle Apex 应用程序项值
【发布时间】:2020-04-20 23:55:43
【问题描述】:

如果我使用 &APP_BRCODE 访问该值,我有一个应用程序项目 - APP_BRCODE(不是页面项目)。我可以检索该值,但无法使用 javasctipt 设置该值。 $s('APP_BRCODE',value) 不起作用

【问题讨论】:

    标签: javascript oracle-apex-5


    【解决方案1】:

    仅 Javascript 只能更改已在页面上呈现的项目的值 - 即页面项目。要更改应用程序项的值,需要调用数据库 - 提交页面或进行 AJAX 调用。您可以从 Javascript 代码中进行 AJAX 调用,如下所示:

    apex.server.process 
      ( "MY_PROCESS",
        { x01: my_var 
        },
        { success: function( pData ) {
                   },
         dataType: "text"
        }
      );
    

    这会将x01 设置为变量my_var 的值并调用AJAX 回调(也称为“按需”)PL/SQL 进程MY_PROCESS

    PL/SQL 进程然后可以设置应用程序项:

    :APP_ITEM := apex_application.g_x01;
    

    看起来工作量很大?也许。在不知道为什么要从 Javascript 设置应用程序项的情况下,很难说这是否值得。你可以只设置一个隐藏的页面项吗?

    【讨论】:

      【解决方案2】:

      当我为相同的上下文寻找解决方案时,我最终看到了您的回复。

      在动态动作中,

      apex.server.process
        ( "upload_ajax_process",
      
          { x01: this.browserEvent.originalEvent.detail.serverId
          },
      
          { success: function( pData ) {
                     },
           dataType: "text"
          }
        );
      

      在处理中,创建了回调函数“upload_ajax_process”,如下所示。 insert 语句将值正确插入到表中,但页面显示项 P12_DOCUMENTURL 未显示该值。我在这里缺少什么?

      begin
      :P12_DOCUMENTURL := apex_application.g_x01;
      
      insert into tbl_bs_commentsdoc (commentsdocid, documenturl)
      values (seq_commentsdoc_commentsdocid.nextval, apex_application.g_x01);
      
      end;
      

      【讨论】:

        猜你喜欢
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 2014-10-06
        • 1970-01-01
        • 2018-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多