Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Сообщение серверу об изменении репорта... / 17 сообщений из 17, страница 1 из 1
28.09.2009, 13:16
    #36220308
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
есть репорт с чекбоксами, при обычном вызове сабмита в процессе переменные типа apex_application.g_fХХ.COUNT имеют значение(при выделенных чекбоксах соответственно), а если обращаться к этому процессу через аякс то серверто еще не знает об изменении чекбокса на клиенте поэтому возвращает 0.
как сообщить серверу об изменившемся репорте?
...
Рейтинг: 0 / 0
28.09.2009, 16:32
    #36220870
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Чем чекбоксы принципиально отличаются от остальных элементов формы? Также собираем их и отправляем с остальными параметрами POST-запроса. Говорили ж об этом уже .
serialize() (если применяете jquery) имеет смысл в применении только к дом-элементу <form>, т.е. в $("#form_id").serialize() "form_id" - это именно id формы: wwvFlowForm, если интересуют все элементы со страницы, либо конкретный блок можно оформить в <form id="form_id">...</form> и собрать элементы ввода из этого блока только.
...
Рейтинг: 0 / 0
28.09.2009, 22:58
    #36221587
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Я до этого дошел после как создал темы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function v_el(s)
{
return document.getElementsByTagName('BODY').item( 0 ).getElementsByTagName('input')[s]
};

//Обновляем значение apex_item
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('f31',v_el('f31')); 
get.add('f26',v_el('f26')); 
var ret = get.get();
get = null;

но при обычном выводе региона с репортом все срабатывает, но если я это регион загоняю в div то работать прекращет, хотя v_el('f31').value выводит правильное значение. чем отличеатя регион в слое или нет?
...
Рейтинг: 0 / 0
29.09.2009, 09:02
    #36221828
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Причем не просто див (и с ним нормально работает), а див который потом используется в jquery. то есть видимо что то он все таки делает такого что эти переменные(apex_application.g_fХХ.COUNT) не попадают куда нужно, они же в се равно храняться в каких то таблицах, и видимо отсекаются когда используется диалог, хотя физически данный репорт показывается, и ява-элементы нормально заолняются но тут возникает проблемы синхронизации апкса(с контексте системных таблиц) и ява-элементов.
по пробовал перевести нумерацию элементов бло от 23 до 34, перевел на первй десяток от 02 и тд, вообще фигня вышла от 02-05 у коунта всегда значение 10 - от куда взялись не известно...

Что со всем этим можно придумать может get запускать в другом разрезе что бы заполнялись нужные элементы?
...
Рейтинг: 0 / 0
29.09.2009, 11:51
    #36222196
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Может что то в классе диалога использовано то что влияет на видимость апрекс-переменных? только вот что? что вообще может на это повляють?
...
Рейтинг: 0 / 0
29.09.2009, 11:56
    #36222217
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
kasik,

А почему вы, собственно, для передачи fXX используете get.add, а не get.addParam?
...
Рейтинг: 0 / 0
29.09.2009, 12:31
    #36222337
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
kvad,
Зачем мне параметры, я не собираюсь их исполшьзовать вручную я просто сообщаю серверу об их изменении а дольше должен отрабатывать процесс с измененными переменными. все дело не в этом, так как данная схема работает без использования jquery.

И я выяснил в чем дело! Дело в том что jquery.dialog при инициализации выщелкивает его(данный слой) из
Код: plaintext
<form id="wwvFlowForm" name="wwv_flow" method="post" action="wwv_flow.accept"> 
по этому данный слой получается "вне апекса"...
А теперь самый уточненный вопрос как его оставить всетаки в форме без отказа от jquery?
...
Рейтинг: 0 / 0
29.09.2009, 13:44
    #36222585
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Каким это вообще аттрибутом это делается? что бы его исключить...
...
Рейтинг: 0 / 0
29.09.2009, 13:46
    #36222596
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
kasikвсе дело не в этом, так как данная схема работает без использования jquery.
Не верю )
Случаем не наблюдали, что возвращает сервер, если ему отправить:
Код: plaintext
1.
2.
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('f31','bla-bla'); 
var ret = get.get();
?
А возвращает он: "Unexpected error, unable to find item name at application or page level."
А все потому, что get.add заточен для передачи item -ов, а fXX должны уходить просто параметрами http-запроса (&f31=aaa).
Сдается мне, что fXX на сервере устанавливаются в другом месте (мож результаты наблюдаете после обычного сабмита?)

firebug в помощь.
...
Рейтинг: 0 / 0
29.09.2009, 15:42
    #36223004
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Последние 5 мес работаю только через firebug и все это наблюдаю. именно им и отследил что эти переменные кроюлся в инпут элементах с name=fXX и попробовал на шару
Код: plaintext
get.add('f31',v_el('f31')); 
перед этим выследив данный элемент вон той(см выше) длинной функцией. и серьезно заработало если регион не трогать jquery.
и именно фаербагом вычислил что данный регион выбивается из формы поэтому данные коунты постоянно нулевые не зависимо от выбора чек бокса видимо при рендеринге страницы они не попадают в рассмотрение так как не находятся в форме
Код: plaintext
1.
<form id="wwvFlowForm" name="wwv_flow" method="post" action="wwv_flow.accept"> 

Так что поверьте мне пожалуйста...

ЗЫ: при отправке бла бла бла конечно будет ошибка а я передаю объект, а поповоду заточки под итемы не знаю, система же сама разобралась чего куда изменить. так что вопрос как этот регион обратно в форму запихать!
...
Рейтинг: 0 / 0
29.09.2009, 15:45
    #36223011
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
И никакого сабмита не было... это все через аякс!
...
Рейтинг: 0 / 0
29.09.2009, 16:48
    #36223252
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Да, признаю, такая ошибка есть!

Вообщем коректировка сути темы:
есть репорт с чекбоксами который показывается обычным образом ничего не меняя. при вызове локального процесса через аякс отрабатывает нормально. но если использую диалог то уже через аякс все коунты равны 0.
уже рассматриваю поповоду вызова с параметрами, но если я передам ввиде параметра ява-объект как мне потом оперировать с ним через pl/sql? а если передавать все по отдельности: количество выделенных элементов и потом по отдельности занчение каждого выделенного элемента, это больно грамозко.
...
Рейтинг: 0 / 0
29.09.2009, 16:53
    #36223285
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
kasikИ никакого сабмита не было... это все через аякс!
А можно поподробнее про "через аякс"? В какой момент и как успешно аяксилась форма без jquery dialog? Речь идет только про передачу f31 и f26 или где-то позже еще есть все-таки $("#wwvFlowForm").serialize() ?
Мои догадки:
Все элементы у вас успешно сериализовывались в пост-параметры с помощью serialize(), до тех пор, пока jquery dialog не стал "выбивать" div с некоторыми элементами вон из формы wwvFlowForm.
Для решения этой "проблемы" я уже дал наводку во 2-м сообщении этой темы.
...
Рейтинг: 0 / 0
29.09.2009, 17:19
    #36223388
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Не парьтесь по поводу выделения (чекнутых) элементов, serialize() готовит пост-параметры также, как они формируются при стандартном сабмите формы. Следовательно, волшебная апексовская процедура wwv_flow.accept получив их, точно также распихивает в свои g_fXX, item-ы и др. сущности на стороне сервера. Все, что нужно - это заставить serialize() собрать эти параметры. Как - писал выше.
kasikно если я передам ввиде параметра ява-объект
Параметры, подготовленные для отправки (например, с помощью serialize()) - это тупо текстовая строка, состоящая из пар <имя>=<значение>, разделенных символом "&". Ни get.add, ни get.addParam не умеют преобразовывать никакие "ява-объект"-ы. get.add добавляет в общую строку параметров пару: &p_arg_names=<знач.1-го аргумента>&p_arg_values=<знач.2-го аргумента>, а get.addParam добавляет 1 параметр с именем из 1-го аргумента, значением из второго.
...
Рейтинг: 0 / 0
04.10.2009, 18:48
    #36231542
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Спасибо, что навели на решение, а не написали его. Значит мне необходимо: так как мой регион получается выщелкнут из основной формы-wwv_flow, то и получается что данные параметры упускаются из $("#wwvFlowForm").serialize(), поэтому мне надо данный регион поместить в какую нить форму и потом к параметром запроса добывить $("#my_Form").serialize()/ Но есть одно НО... я заключаю в ворму свой див, хоть внешне хоть в нутри все равно он прибивается при инициализации плагина диалога.
Я поступаю подругому:
Код: plaintext
1.
$("#DLG").prepend('<form action="wwv_flow.accept" method="post" name="wwv_flow" id="VD">');
$("#DLG").append('</form>');
но вставляется только
Код: plaintext
<form action="wwv_flow.accept" method="post" name="wwv_flow" id="VD">
то еть она не получается закрытая и поэтому игнориться.

как мне заключить в форму мой регион?
...
Рейтинг: 0 / 0
05.10.2009, 11:17
    #36232248
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
Лучше форму в регион: )
Код: plaintext
1.
2.
$('#my-div-will-be-dialog-soon')
  .dialog({...})
  .wrapInner('<form id="VD" name="VD" method="post" action="wwv_flow.accept"></form>');
...
Рейтинг: 0 / 0
05.10.2009, 12:18
    #36232421
я
я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сообщение серверу об изменении репорта...
только что сделал также большое спасибо за содействие
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Сообщение серверу об изменении репорта... / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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