powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Работа с динамическими элементами
17 сообщений из 17, страница 1 из 1
Работа с динамическими элементами
    #38777584
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача, в качестве решения которой необходимо сгенерировать на старнице некое кол-во динамических полей ввода, а после того, как пользователь с ними поработает, одним махом сохранить все изменения в БД. Отсюда вопросы:
Какие нюансы следует учесть при генерации полей ввода?

Каким образом их обработать для сохранения в БД?
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38777986
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlruКакие нюансы следует учесть при генерации полей ввода?
Что пользователь при должном умении сам может создать поля, подменить в них типы или списки значений.

dvksqlruКаким образом их обработать для сохранения в БД?
А как создавать собрались, через APEX_ITEM? Тогда обрабатывайте через apex_application.g_fNN.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38777992
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerА как создавать собрались, через APEX_ITEM? Тогда обрабатывайте через apex_application.g_fNN.

Создавать предполагается примерно так:

Код: plsql
1.
select '<input type="text value=" ...



Про нюансы - я предполагаю, что необходимо на поля навесить какие-то атрибуты для яваскрипта. А вот какие атрибуты и пример как с ними работать бы...
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38778093
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlruСоздавать предполагается примерно так:
При отправке на сервер всё это уйдёт либо в APEX_APPLICATION.accept, либо в пользовательскую процедуру. Если Вы не собираетесь писать последнюю, то советую посмотреть на спецификацию первой. Её параметры типа table of — это name в Ваших тегах INPUT.

Можно выводить поля с name="fNN", а типы полей указывать в скрытых полях с name="fNN+1". Тогда применим мой предыдущий комментарий.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38778723
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

Попробую описать подробнее процесс формирования элементов:

Код: plsql
1.
2.
3.
4.
select '<input type="text" value="' || (SELECT MY_VALUE1 FROM MY_TABLE WHERE ...) || '">'
select '<input type="text" value="' || (SELECT MY_VALUE2 FROM MY_TABLE WHERE ...) || '">'
select '<input type="text" value="' || (SELECT MY_VALUE3 FROM MY_TABLE WHERE ...) || '">'
...



И все это предполагается вывести с помощью отчета, сформировав таким образом группу элементов.

Т.е. APEX_ITEM использовать не предполагается. Я примерно понимаю, как просмотреть все элементы JavaScriptом, но как из цикла JavaScript организовать вызов PL SQL, осуществляющий insert или update не понимаю. Вот, собственно в чём и вопрос.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38778738
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,

htmldb_Get
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38778759
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasikdvksqlru,

htmldb_Get

kasik,

Кр. сест. тал:) А если серьёзно, то как прочитать значения сих айтемов примерно понятно, а как вызвать из JavaScript DML -нет.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38779061
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlruТ.е. APEX_ITEM использовать не предполагается.
А почему? Он за Вас проставит соответствующие теги и атрибуты.

dvksqlruЯ примерно понимаю, как просмотреть все элементы JavaScriptом, но как из цикла JavaScript организовать вызов PL SQL, осуществляющий insert или update не понимаю.
Вам нужно будет передавать параметры со значения в вызов процедуры на сервере. В конце концов, AJAX через серверную часть (EPG, mod_plsql, APEX Listener) дёргает WWV_FLOW.accept, WWV_FLOW.show_page или Вашу собственную процедуру с соответствующими фактическими параметрами. Если заглянете в #IMAGE_PREFIX#/libraries/apex/apex_4.2, то на примере htmldb_Get можете посмотреть, как происходит обращение к серверу.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38779091
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerdvksqlruТ.е. APEX_ITEM использовать не предполагается.
А почему? Он за Вас проставит соответствующие теги и атрибуты.

Се ля ви, я не архитектор в данной задаче.

suPPLerdvksqlruЯ примерно понимаю, как просмотреть все элементы JavaScriptом, но как из цикла JavaScript организовать вызов PL SQL, осуществляющий insert или update не понимаю.
Вам нужно будет передавать параметры со значения в вызов процедуры на сервере. В конце концов, AJAX через серверную часть (EPG, mod_plsql, APEX Listener) дёргает WWV_FLOW.accept, WWV_FLOW.show_page или Вашу собственную процедуру с соответствующими фактическими параметрами. Если заглянете в #IMAGE_PREFIX#/libraries/apex/apex_4.2, то на примере htmldb_Get можете посмотреть, как происходит обращение к серверу.

Если честно, то рассчитываю на более простой подход, о котором просто не знаю.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38779165
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlruЕсли честно, то рассчитываю на более простой подход, о котором просто не знаю.
Мне жаль, но его нет. Вам так или иначе нужно будет передать на сервер и обработать пары ключ-значение (поле-ввод). В виде массивов fNN или переменных xNN, в виде объекта, сериализованного в каком-нибудь формате (JSON, XML) значения одного из параметров вышеупомянутых процедур, в виде файла. И если первый вариант Oracle сам преобразует в удобный к использованию вид -- коллекции PL/SQL, то другие потребуют дополнительных усилий.

Сложности, кстати, невелики. При использовании APEX_ITEM на самой странице ничего делать не потребуется, если нужны поля встроенных типов.

dvksqlruСе ля ви, я не архитектор в данной задаче.
IMHO, Ваш архитектор слишком много на себя берёт, ставя ограничения для разработчика на подмножество средств реализации вместо описания интерфейсов, критериев производительности и безопасности. :)

"Не смейте использовать сложение и цикл FOR в реализации!"
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38779237
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,

Из вашего описания не понятно, в каком месте у вас возникают затруднения. Разбейте задачу по шагам, например, простейший вариант:

1. Генерируете html элементов
1.1. Правильно расставляете им атрибут name="fxx"
2. Добавляете кнопку с submit
3. Пишите обработчик на стороне сервера:
3.1 динамически формируете строку с dml из apex_application.g_fxx
3.2 вызываете execute immediate

Это вариант без яваскрипта. Нужен именно Аякс ?
Значит вместо 2 будет кнопка с аякс запросом:

2.1 собираете элементы формы, способов много, хотя бы через $('[name="f01"]').each легко получите массив элементов f01 и т.д.

2.2 при желании можно собрать в одну переменную в виде Json/XML, на сервере соответственно парсить, если не влезет в 32767 поищите скрипт кусочной передачи в clob
2.3 пишите Аякс запрос, способов масса, htmldb_get лишь один из многочисленных, поищите примеры с передачей массивов

Если сильно лениво собирать элементы погуглите по serialize , но не гарантирую, что будет работать с новыми версиями апекса т.к. не пробовал

ну или можно попробовать через недавно вышедший плагин

В общем определитесь, каким способом будете делать, дальше уже должно хорошо гуглиться
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38779431
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,
странная задача. Хорошо сохранять простынь полей в таблице Excell. Ну, или скриншотом)).
Работать то потом как с ними? Бизнес-логикой?
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38779932
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerdvksqlruСоздавать предполагается примерно так:
При отправке на сервер всё это уйдёт либо в APEX_APPLICATION.accept, либо в пользовательскую процедуру. Если Вы не собираетесь писать последнюю, то советую посмотреть на спецификацию первой. Её параметры типа table of — это name в Ваших тегах INPUT.

Можно выводить поля с name="fNN", а типы полей указывать в скрытых полях с name="fNN+1". Тогда применим мой предыдущий комментарий.

А что вы понимаете под пользовательской процедурой? Разве можно миновать апексовую процедуру wwv.flow.accept?
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38780204
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

под пользовательской процедурой я понимаю её самую. Начать читать можно отсюда: Oracle® Fusion Middleware User's Guide for mod_plsql (особенно третью главу), Oracle® Application Express Administration Guide: 2.4.2.15 Restricting Access to Oracle Application Express by Database Access Descriptor (DAD) .

Миновать "апексовую процедуру wwv.flow.accept" можно обращением к другой в URL.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38780211
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,

есть вариант ещё отправлять данные методом POST в настроенный ресурс REST... но это совсем не простой подход.
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38780373
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,
Какой приколист, а зачем Апекс тогда нужен?
...
Рейтинг: 0 / 0
Работа с динамическими элементами
    #38780492
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelКакой приколист, а зачем Апекс тогда нужен?
Чтобы архитектор решал, что из него не использовать.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Работа с динамическими элементами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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