在 Oracle APEX 中将多个值从一个页面传递到另一个页面

Passing multiple values from a page to another in Oracle APEX

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

当前生成的URL是:

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,session中P21_ACTIVITY_NAME的值是1:P20_USER_NAME 并且 P20_USER_NAME 的值为 null

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

我有另一种使用浏览器 sessionStorage 的方法。如果您有兴趣,请按以下方式:

设置将您的页面重定向到另一个页面的页面按钮的静态 ID 属性。为了这个例子,我将它设置为 "submitbutton"。 然后在页面的 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;

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

你的URL错了。

阅读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