Как обновить записи в таблицах в Oracle APEX, используя javascript / html? - PullRequest
1 голос
/ 05 марта 2012

В настоящее время у меня есть страница в Oracle APEX, основанная на html.Страница фактически состоит из карты и региона с координатами местоположения, которое пользователь нажимает на карте.

Я застрял в том, как мне обновить таблицы в APEX, используя значения из моей html-страницы.

Спасибо за любые советы или помощь.

Ответы [ 3 ]

5 голосов
/ 05 марта 2012

Я сделал быстрый макет: попробуйте здесь

Это мои настройки страницы: page setup

Динамическое действие на моей кнопке, Выполнить код Javascript(я использовал кнопку, с таким же успехом можно привязать это к любому другому элементу):

var oDBGet = new htmldb_Get(null, $v('pFlowId'), "APPLICATION_PROCESS=SAVE_COORDS", $v('pFlowStepId'));
oDBGet.addParam('x01', $v("P25_NAME"));
oDBGet.addParam('x02', $v("P25_XCOORD"));
oDBGet.addParam('x03', $v("P25_YCOORD"));

oDBGet.get();

обновление в области отчета, чтобы показать, что оно работает.

htmldb_Get немногонедокументированной функции в вершине.

  • параметр 1: идентификатор сеанса -> ненужный, следовательно, null
  • параметр 2: идентификатор приложения (так что вы можете использовать &APP_ID. для строки подстановки, но это невозможно использовать в .jsfile)
  • параметр 3: процесс, который будет выполнен.Это может быть приложение или процесс страницы.Определяется параметром 4
  • , параметром 4: идентификатор страницы (опять же, &APP_PAGE_ID. можно использовать).Если не указано, предполагается, что процесс является процессом прикладного уровня (общие компоненты -> ...)

apex_application.g_x##, с 01 по 10 - это 10 возможных переменных, используемых для временного хранения.Вы передаете их, как я показал: x01, x02, ... В процессе приложения вы можете ссылаться на них через apex_application.g_x##.

Page Process, AJAX Callback:

insert into coordinates
(name, xcoord, ycoord)
values
(apex_application.g_x01, apex_application.g_x02, apex_application.g_x03);

Чтобы настроить это в соответствии с вашими потребностями, вам нужно привязать событие к правильным селекторам и предоставить правильные переменные.

4 голосов
/ 18 января 2013

Есть самый простой способ:
Динамическое действие над кнопкой, Выполнить код Javascript

var oDBGet = new htmldb_Get(null, $v('pFlowId'), "APPLICATION_PROCESS=SAVE_COORDS", $v('pFlowStepId'));
oDBGet.add('P25_NAME', $v("P25_NAME"));
oDBGet.add('P25_XCOORD', $v("P25_XCOORD"));
oDBGet.add('P25_YCOORD', $v("P25_YCOORD"));

oDBGet.get();

Обработка страницы, обратный вызов AJAX:

insert into coordinates
(name, xcoord, ycoord)
values
(:P25_NAME, :P25_XCOORD, :P25_YCOORD);
0 голосов
/ 09 июня 2013

Возможно ли, что в APEX 4.1 метод add не работает?

...