Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вызов AJAX в плагине / 16 сообщений из 16, страница 1 из 1
31.10.2014, 13:59
    #38792943
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
Имеется функция ajax "AJAX_GET_DATA_PLUG" как правильно ее вызвать RENDER
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
  SYS.HTP.P('],
                '||case when p_region.attribute_09 = 1 then ' 
                hierarchy:
                {
                    
                    keyDataField: { name: '||''''|| p_region.attribute_10 ||'''' ||'},
                    parentDataField: { name: '||''''|| p_region.attribute_11|| '''' ||'}
                    
                },' end||'
                id: '|| ''''||p_region.attribute_10||''''||',
                url: "'||APEX_UTIL.PREPARE_URL('f?p=201:18:'||:APP_SESSION||':PROCESS=AJAX_GET_DATA_PLUG::::')||'",
                //localData: json_data_2,
                 addRow: function (rowID, rowData, position, parentID, commit) {
                     // synchronize with the server - send insert command
                     // call commit with parameter true if the synchronization with the server is successful 
                     // and with parameter false if the synchronization failed.
                     // you can pass additional argument to the commit callback which represents the new ID if it is generated from a DB.
                     commit(true);
                     newRowID = rowID;
                 },
                 updateRow: function (rowID, rowData, commit) {
                     // synchronize with the server - send update command
                     // call commit with parameter true if the synchronization with the server is successful 
                     // and with parameter false if the synchronization failed.
                     commit(true);
                 },
                 deleteRow: function (rowID, commit) {
                     // synchronize with the server - send delete command
                     // call commit with parameter true if the synchronization with the server is successful 
                     // and with parameter false if the synchronization failed.
                     commit(true);
                 }
            };');




При вызове в javascript работает замечательно а при подстановке как URL не хочет :-(
...
Рейтинг: 0 / 0
31.10.2014, 14:07
    #38792959
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
Ничего не понятно, расшифруйте, что хотите...
...
Рейтинг: 0 / 0
31.10.2014, 14:17
    #38792971
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
kasik, имеется плагин самописный основанный на JQWIDGETS в нем как и положено описаны две функции render и ajax, если к ajax обращаюсь через javascript с помощью :
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 apex.jQuery.ajax({
    dataType: "text",
    type: "post",
    url: "wwv_flow.show",
    traditional: true,
    data: {
        p_request: "NATIVE=2CD94E2EA2AF11A73BE36DF8D8ABB97889A4E4F658B8F195174BEBB0386F0DEC",
        p_flow_id: $v("pFlowId"),
        p_flow_step_id: $v("pFlowStepId"),
        p_instance: $v("pInstance"),
        x01: "validate",
        x02: "{" + """ + "item_code" + """ + ":" + """ + $("#item_code").val() + """ + ","
                + """ + "item_name" + """ + ":" + """ + $("#item_name").val() + """ + ","
                + """ + "item_desc" + """ + ":" + """ + $("#item_desc").val() + """ + ","
                + """ + "seg_cc" + """ + ":" + """ + $("#seg_cc").val() + """ + "}"

    },
    success: function(pData) {
        //callback(l_result);	
        a = a + 1;

    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert("Ошибка вызова AJAX!");
    }
});    

функция исполняется, если подставля в URL как в первом сообщении то не срабатывает AJAX функция плагина
...
Рейтинг: 0 / 0
31.10.2014, 14:42
    #38793009
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
maxandsoft,
ajax вроде в firebug виден. Что-нибудь видно?
...
Рейтинг: 0 / 0
31.10.2014, 14:46
    #38793021
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
Petro123, я хромом пользуюсь но в самой AJAX функции есть вставка в таблицу с логами, если вызываю apex.ajax то все хорошо и возвращает данные и записывает в таблицу, если вызываю через URL сам процесс то он даже не дергается :-(
...
Рейтинг: 0 / 0
31.10.2014, 14:56
    #38793037
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
вот в итоге что получаеться но нужно через URL данные получать т.к. не хочеться грузить весь объем данных а тока страницу котороую можно параметрами по кол-ву строк отображать :-(
...
Рейтинг: 0 / 0
31.10.2014, 14:57
    #38793042
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
maxandsoft, Подскажите куда копать??? suPPler ????
...
Рейтинг: 0 / 0
01.11.2014, 01:48
    #38793488
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
maxandsoftне срабатывает AJAX функция плагина
Я пока оттолкнусь от этого.

Когда Вы указываете обработчик в плагине, то он может называться точно так же, как и в других плагинах. А экземпляров плагина у Вас на странице может быть несколько. Чтобы вызвать нужный обработчик с правильно заполненными данными, APEX использует идентификатор конкретного экземпляра плагина в REQUEST вида PLUGIN=AJAX_IDENTIFIER. Правильное формирование вызова:

Код: plsql
1.
2.
3.
4.
5.
  SYS.HTP.P('],
...
                url: apex.server.pluginUrl( "' || apex_plugin.get_ajax_identifier || '" ),
...
            };');



Про встроенные JS-функции apex.server.pluginUrl и apex.server.plugin можно почитать в документации .
...
Рейтинг: 0 / 0
02.11.2014, 20:41
    #38794364
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
suPPLer, спасибо получилось :-)
...
Рейтинг: 0 / 0
05.11.2014, 17:38
    #38796594
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
suPPLer, и еще вопрос в относительно всего выше изложенного, в плагине в функции AJAX использую формирование JSON в цикле, а хотел бы использовать apex_util.json_from_sql, но при его использовании данные не возвращаются, в чем проблема?
...
Рейтинг: 0 / 0
05.11.2014, 19:28
    #38796697
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
maxandsoftа хотел бы использовать apex_util.json_from_sql, но при его использовании данные не возвращаются, в чем проблема?
APEX_UTIL.json_from_% -- это процедуры, которые выводят результат через HTP. Если хотите возвращать в ответ на запрос клиента JSON-объект, то можно их использовать. Только учтите, что функции не документированы, потому их наличие и неизменность в следующих версиях APEX не гарантируются.
...
Рейтинг: 0 / 0
06.11.2014, 00:56
    #38796837
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
suPPLer, спасибо, на самом деле да видел что в 12с уже есть функция json_table аналог XMLTABLE http://docs.oracle.com/database/121/SQLRF/functions091.htm#SQLRF56973 на использование json_table и даже работает, юзал в интерфейсах для AIA
...
Рейтинг: 0 / 0
06.11.2014, 00:59
    #38796838
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
...
Рейтинг: 0 / 0
07.11.2014, 15:42
    #38798646
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
suPPLer, возникла еще проблема с сылкой на AJAX в plugin

формируеться URL " http://192.168.50.95:8082/apex/wwv_flow.show?p_flow_id=300&p_flow_step_id=9&p_instance=10399690251018&p_debug=&p_request=PLUGIN=21001F44CD92FC09821547DC7726DA6135D3DC736B0A4F6938DA8C4F185B7E65&x01=test&x02=111&filterslength=0&pagenum=0&pagesize=20&_=1415363941351"

и в отладчике выдает : Failed to load resource: the server responded with a status of 400 (Bad Request) http://192.168.50.95:8082/apex/wwv_flow.show?p_flow_id=300&p_flow_step_id=9…E65&x01=test&x02=111&filterslength=0&pagenum=0&pagesize=20&_=1415363941351

если просто копирую ссылку и удалаю вот эту часть из нее "&filterslength=0&pagenum=0&pagesize=20&_=1415363941351" тогда возвращает JSON в чем тут проблема может быть?
...
Рейтинг: 0 / 0
07.11.2014, 15:51
    #38798655
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
maxandsoft
формируеться URL c помощью
Код: javascript
1.
apex.server.pluginUrl( "' || apex_plugin.get_ajax_identifier || '" )
...
Рейтинг: 0 / 0
18.11.2014, 12:07
    #38809304
maxandsoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов AJAX в плагине
Хелп
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вызов AJAX в плагине / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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