【问题标题】:Passing multiple values from a page to another in Oracle APEX在 Oracle APEX 中将多个值从一个页面传递到另一个页面
【发布时间】:2016-02-05 02:43:11
【问题描述】:

我想知道如何将多个值从一个页面传递到另一个页面并存储在会话中。

当前生成的网址是:

https://server_name/apex/f?p=285:20:SESSION_ID::NO:20:P21_ACTIVITY_NAME:1:P20_USER_NAME:APEX_USER

其实我想把P21_ACTIVITY_NAMEP20_USER_NAME传到另一个页面,但是上面提到的URL,会话中P21_ACTIVITY_NAME的值为1:P20_USER_NAME,P20_USER_NAME的值为null

【问题讨论】:

  • 顺便说一句,真的是 P21_ACTIVITY_NAME 吗?为什么不是 P20_ACTIVITY_NAME?
  • 请澄清您的问题。假设您的项目名称(P21_ACTIVITY_NAMEP20_USER_NAME)遵循 APEX 项目命名约定(P<page_number>_<item name>)。在这种情况下,当您在页面21 上时,会话状态下第20 页的项目的值为NULL。此外,当您转到页面20 时,在页面21 上设置项目的值是没有意义的。现在还不清楚,你想做什么。
  • 感谢您的提醒。我会做出必要的更正。但对于我的选择,命名不会影响结果,因为它正在工作,虽然我没有遵循命名约定。
  • 遵循命名约定旨在澄清您的问题。如果您在编号为20 的页面上创建名称为P21_ACTIVITY_NAME 的项目,则在您不寻求帮助的情况下这不是问题。如果我看到名称P21_ACTIVITY_NAME,我想该项目位于第 21 页上,如果它在另一页上,您应该在问题中说明它。就是这样。

标签: url parameter-passing oracle-apex


【解决方案1】:

您的网址错误。

阅读https://docs.oracle.com/database/121/HTMDB/concept_url.htm#HTMDB03017

正确的语法应该是这样的:

https://server_name/apex/f?p=285:20:SESSION_ID::NO:20:P21_ACTIVITY_NAME,P20_USER_NAME:1,APEX_USER

【讨论】:

  • 感谢您的反馈。我发现最好的方法是将值设置到应用程序项中。
【解决方案2】:

在 apex 中创建一个全局项目并在您提交设置值的页面时设置这些项目的值怎么样?这样,您可以在整个会话中从应用程序的任何页面引用这些项目值。

我还有另一种方法可以使用浏览器的sessionStorage。如果您有兴趣,请按以下步骤操作:

设置将您的页面重定向到另一个页面的页面按钮的静态 ID 属性。为了这个例子,我将它设置为“提交按钮”。 然后在页面的Execute on Page Load 部分,输入以下行:

    $("#submitbutton").mousedown(function(){
        sessionStorage.P20_ACTIVITY_NAME = $("#P20_ACTIVITY_NAME").val();
        sessionStorage.P20_USER_NAME = $("#P20_USER_NAME").val(); 
    });

您可以像这样通过 javascript 从另一个页面引用这些值:

sessionStorage.P20_ACTIVITY_NAME or sessionStorage.P20_USER_NAME

这是一个例子:

document.getElementById("the_id_of_the_item_you_want_to_set_with_the_value_from_theotherpage").value = sessionStorage.P20_ACTIVITY_NAME;

该示例根据上一页中项目的值设置当前页面中元素的值。

【讨论】:

  • 看来您非常擅长在 Oracle APEX 中使用 JavaScript。你知道如何在 APEX 中应用 JQuery 吗?如果是那么怎么办?例如,放置代码的位置。
  • @Jonas,您可以将其放在主页的 Function and Global Declarations 部分或 Execute on Page Load 中。 jquery 不需要声明<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 标签。 Oracle APEX 会自动为您声明
猜你喜欢
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多