Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача своих параметров через AJAX / 23 сообщений из 23, страница 1 из 1
06.08.2013, 12:38
    #38356418
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Можно ли в APEX средствами AJAX передать параметры со своими названиями, вместо x01..x99 ?
...
Рейтинг: 0 / 0
06.08.2013, 13:10
    #38356476
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
loggin,

С помощью AJAX можно передать параметры с любыми именами.
...
Рейтинг: 0 / 0
06.08.2013, 13:14
    #38356483
haXbat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
GustlyС помощью AJAX можно передать параметры с любыми именами.
Да ладно, а как же
Error ERR-1002 Unable to find item ID for item "BLA_BLA_BLA" in application "101".
Unexpected error, unable to find item name at application or page level.
...
Рейтинг: 0 / 0
06.08.2013, 13:15
    #38356486
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
haXbatError ERR-1002 Unable to find item ID for item "BLA_BLA_BLA" in application "101".
Unexpected error, unable to find item name at application or page level.
Вот же в ошибке все написано. Вы уверены, что такой итем есть? Если это итем приложения, то попробуйте ему все защиты поснимать, и еще раз попробуйте.
...
Рейтинг: 0 / 0
06.08.2013, 13:21
    #38356493
haXbat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
GustlyВот же в ошибке все написано. Вы уверены, что такой итем есть? Если это итем приложения, то попробуйте ему все защиты поснимать, и еще раз попробуйте.
Разумеется, что такого айтема нет. Мы же говорим о передаче любых имен.
...
Рейтинг: 0 / 0
06.08.2013, 13:22
    #38356499
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Как передаете покажите код.
...
Рейтинг: 0 / 0
06.08.2013, 13:30
    #38356515
haXbat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Gustly,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
    //ERROR
    var aget = new apex.ajax.ondemand();
    aget.ajax.add('BLA_BLA_BLA', '1295');
    aget._get();
    
    //NO ERROR
    var aget = new apex.ajax.ondemand();
    aget.ajax.addParam('x01', '1295');
    aget._get();


Из чего я делаю вывод, что передавать параметры AJAX-ом можно с именами либо существующих айтемов, либо c с помощью зарезервированных x01-x10.
...
Рейтинг: 0 / 0
06.08.2013, 13:51
    #38356559
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
haXbat,

А, так это апексовый аякс, мне больше по нраву от jquery $.post, там я сам указываю, что куда зачем и колбэк еще, не знаю, есть ли он здесь.
...
Рейтинг: 0 / 0
06.08.2013, 14:13
    #38356615
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
GustlyhaXbat,

А, так это апексовый аякс, мне больше по нраву от jquery $.post, там я сам указываю, что куда зачем и колбэк еще, не знаю, есть ли он здесь.

Серверная часть как выглядит?

Куда апекс складывает реквесты и как к ним добраться?
...
Рейтинг: 0 / 0
06.08.2013, 14:29
    #38356645
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
loggin,

Мой сервер - глассфиш. Я выдрал из консоли запрос и переписал так, как мне надо было.
Код: javascript
1.
2.
3.
4.
$.post('wwv_flow.show',"p_request=APXWGT&p_flow_id="+$v('pFlowId')+"&p_flow_step_id="+$v('pFlowStepId')+"&p_instance="+$v('pInstance')+"&p_widget_action=reset&x01=2361711335907569&p_widget_name=classic_report&p_arg_names=P1_ROWS&p_arg_values="+$v('P1_ROWS')+"&p_arg_names=P1_REPORT_SEARCH&p_arg_values="+$v('P1_REPORT_SEARCH')
, function (data) {
alert(data)
})
...
Рейтинг: 0 / 0
06.08.2013, 14:41
    #38356683
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Gustlyloggin,

Мой сервер - глассфиш. Я выдрал из консоли запрос и переписал так, как мне надо было.
Код: javascript
1.
2.
3.
4.
$.post('wwv_flow.show',"p_request=APXWGT&p_flow_id="+$v('pFlowId')+"&p_flow_step_id="+$v('pFlowStepId')+"&p_instance="+$v('pInstance')+"&p_widget_action=reset&x01=2361711335907569&p_widget_name=classic_report&p_arg_names=P1_ROWS&p_arg_values="+$v('P1_ROWS')+"&p_arg_names=P1_REPORT_SEARCH&p_arg_values="+$v('P1_REPORT_SEARCH')
, function (data) {
alert(data)
})



Это не то. С этим проблем нет. Мне надо не просто передать, но и обработать их на сервере.
...
Рейтинг: 0 / 0
06.08.2013, 14:47
    #38356699
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
loggin,

Передавайте в PL/SQL процедуру, обрабатывайте как вам надо и возвращайте. Отследите через консоль браузера запрос и имитируйте как вам надо. Или RESTful services.
...
Рейтинг: 0 / 0
06.08.2013, 15:21
    #38356785
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Gustlyloggin,

Передавайте в PL/SQL процедуру, обрабатывайте как вам надо и возвращайте. Отследите через консоль браузера запрос и имитируйте как вам надо. Или RESTful services.

Клиентскую часть, браузер и консоль давайте не будем трогать. Имитировать мне ничего не нужно. Данные на сервер уходят. Не важно каким способом я выполняю асинхронный запрос, через jquery,apex.js, голым JS или любую другую библиотеку.

Вот смотрите, на сервер ушли две переменные
Код: javascript
1.
2.
3.
//x01 - name
//x02 - time
$.post("wwv_flow.show", { x01: "John", x02: "2pm", p_request : 'APPLICATION_PROCESS=Hello_world' } );



Для того, чтобы получить эти значения, в pl\sql нужно написать вот это
Код: plsql
1.
name:=APEX_APPLICATION.g_x01; time:=APEX_APPLICATION.g_x02;



В случае, когда я передаю на сервер свои имена переменных, а не х01 и т.д

Код: javascript
1.
$.post("wwv_flow.show", { name: "John", time: "2pm", p_request : 'APPLICATION_PROCESS=Hello_world' } );



Что мне нужно написать в PL\SQL процессе чтобы получить значения Name и time ?
...
Рейтинг: 0 / 0
06.08.2013, 15:32
    #38356805
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
loggin,

Ну, тут необходимы таки application-level or page-level item, чем они вам не нравятся? Или RESTful services.
...
Рейтинг: 0 / 0
06.08.2013, 17:23
    #38357144
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Gustlyloggin,

Ну, тут необходимы таки application-level or page-level item, чем они вам не нравятся? Или RESTful services.

Тем, что для отправки значения, нужно создать кучу всякой херни.
...
Рейтинг: 0 / 0
06.08.2013, 17:25
    #38357153
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
logginGustlyloggin,

Ну, тут необходимы таки application-level or page-level item, чем они вам не нравятся? Или RESTful services.

Тем, что для отправки значения, нужно создать кучу всякой херни.
Какой? У меня есть парочка универсальных TEMP итемов приложения на все случаи жизни, что плохого? Так же можете посылать запросы на свой RESTful service, туда можете написать что угодно, сам запрос будет обрабатываться через PL/SQL.
...
Рейтинг: 0 / 0
06.08.2013, 17:44
    #38357207
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Gustlylogginпропущено...


Тем, что для отправки значения, нужно создать кучу всякой херни.
Какой? У меня есть парочка универсальных TEMP итемов приложения на все случаи жизни, что плохого? Так же можете посылать запросы на свой RESTful service, туда можете написать что угодно, сам запрос будет обрабатываться через PL/SQL.

Представьте, вам говорят нужно отправить посылку из А в Б. Вы берете и несете ее сначала в С а потом в Б. Так и тут

почему х01 можно без всяких TEMP итемов отправить, а вот своё имя обязательно через чего-нибудь необычное. причем таких "своих имен" за ранее предугадать сложно.

Я все же надеюсь что есть объект в котором есть не только x01
...
Рейтинг: 0 / 0
06.08.2013, 20:25
    #38357392
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
logginМожно ли в APEX средствами AJAX передать параметры со своими названиями, вместо x01..x99 ?Нет. Либо глобальные переменные, либо поля страниц и переменные приложения.

haXbatИз чего я делаю вывод, что передавать параметры AJAX-ом можно с именами либо существующих айтемов, либо c с помощью зарезервированных x01-x10.Либо с помощью коллекций f01-f20. В одной из которых можно передавать имена переменных, а в другой -- значения.

GustlyУ меня есть парочка универсальных TEMP итемов приложения на все случаи жизни, что плохого?Это те же самые x01-x10 . :)

logginпочему х01 можно без всяких TEMP итемов отправить, а вот своё имя обязательно через чего-нибудь необычное.Потому что Ваше обращение к серверу преобразуется в вызов процедуры БД. А у PL/SQL-процедур сигнатуры не меняются по щучьему велению, по вызывающего хотению. У wwv_flow.show и wwv_flow.accept чётко указанный набор параметров. Нет там Ваших name и time. А x01-x10 есть. И p_arg_names с p_arg_values есть -- с заданной логикой обработки.

По-хорошему, APEX Team должна была предоставить вменяемый API для добавления "временных переменных" к запросу и работы с ними в процессах через ассоциативные массивы. Но этого нет. Есть возможность пользоваться коллекциями f01-f20 для решения этой проблемы.
...
Рейтинг: 0 / 0
06.08.2013, 20:43
    #38357418
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
logginВ случае, когда я передаю на сервер свои имена переменных, а не х01 и т.д

Код: javascript
1.
$.post("wwv_flow.show", { name: "John", time: "2pm", p_request : 'APPLICATION_PROCESS=Hello_world' } );



Что мне нужно написать в PL\SQL процессе чтобы получить значения Name и time ?
Я вам уже ответил на этот вопрос 14556569
app сервер (ну тобишь mod_plsql/epg/apex listener/...) пытается передать эти параметры в хранимую процедуру-обработчик,
но не может, т.к. там таких параметров не существует. Считайте ответ на ваш вопрос - никак.

Ну или запрограммируйте свою процедуру-обработчик с указанными параметрами
(RTFM public function + для общих предствлений User's Guide for mod_plsql и Advanced Application Developer's Guide/Developing PL/SQL Web Applications), кот. по умолчанию будет работать вне контекста апекса.
...
Рейтинг: 0 / 0
07.08.2013, 09:26
    #38357753
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
Спасибо за ответы, все ясно.
...
Рейтинг: 0 / 0
07.08.2013, 17:22
    #38358645
Передача своих параметров через AJAX
loggin,

может быть Вам глянуть на Flexible Parameter Passing , если Вы используете mod_plsql
но только это как бы апекс тут не при чём...
...
Рейтинг: 0 / 0
07.08.2013, 17:36
    #38358661
Передача своих параметров через AJAX
SvDevapp сервер (ну тобишь mod_plsql/epg/apex listener/...) пытается передать эти параметры в хранимую процедуру-обработчик,
но не может, т.к. там таких параметров не существует. Считайте ответ на ваш вопрос - никак.
в случае с mod_plsql Вы не совсем правы. читайте моё предыдущее сообщение.
...
Рейтинг: 0 / 0
07.08.2013, 18:46
    #38358746
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача своих параметров через AJAX
добрый желатель,

действительно про эту возможность я не сказал, спасибо, что сделали это за меня

а в той части я отвечал только про стандартные апексные процедуры-обработчики, так что сказанное мной верно
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача своих параметров через AJAX / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]