2016-02-05 11 views
1

Я хочу знать способ передачи нескольких значений со страницы на другую и хранения в сеансе.Передача нескольких значений со страницы на другую в 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_NAME и P20_USER_NAME на другую страницу, но с URL указанного выше, значение P21_ACTIVITY_NAME в сессии составляет 1: P20_USER_NAME и значение P20_USER_NAME is null

+0

Кстати, на самом деле P21_ACTIVITY_NAME? почему бы не P20_ACTIVITY_NAME? – hinotf

+0

Просьба уточнить вашу проблему. Предположим, что имена ваших позиций ('P21_ACTIVITY_NAME' и' P20_USER_NAME') соответствуют соглашению об именах позиций APEX ('P _ '). В этом случае, когда вы находитесь на странице '21', значения элементов на странице 20 в состоянии сеанса равны' NULL'. Кроме того, бессмысленно устанавливать значение элемента на странице '21', когда вы переходите на страницу' 20'. Сейчас неясно, что вы хотите сделать. – Dmitry

+0

Спасибо, что напомнили. Я сделаю необходимые исправления. Но для моего опциона именование не повлияет на результат, потому что он работает, хотя я не соблюдал соглашение об именах. – Jonas

ответ

1

Ваш адрес неправильный.

Read 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 
+0

Спасибо за ваши отзывы. И я нашел, что лучший способ - установить значения в элементы приложения. – Jonas

0

Как создать глобальный элемент на вершине и задать значения этих элементов при отправке страницы, задающей значения? Таким образом, вы можете ссылаться на значения этих элементов во всей своей сессии, с любой страницы вашего приложения.

У меня есть другой способ сделать это, используя sessionStorage браузера. Если вам интересно, вот как это сделать:

установить свойство статического идентификатора кнопки страницы, которая перенаправит вашу страницу на другую страницу. Ради этого примера я установлю его на "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; 

образец устанавливает значение элемента на текущей странице из значения элемента с предыдущей страницы.

+0

Похоже, вы очень разбираетесь в использовании JavaScript в Oracle APEX. Вы знаете, как применять JQuery в APEX? Если да, то как это сделать? Например, куда поместить коды. – Jonas

+0

@ Jonas, вы можете либо поместить его в раздел «Функция и глобальная декларация» на своей главной странице, либо в «Выполнить на загрузке страницы». Не нужно объявлять '' тег для jquery. Oracle APEX автоматически объявляет его для вас – Vance

Смежные вопросы