【发布时间】:2013-11-23 19:32:34
【问题描述】:
我想实现一个使用 JQueryMobile 框架的 ORACLE APEX 应用程序的问答系统。基本上,问题文本和包含可能答案的报告显示在页面上。可以通过单击复选框来选择答案。点击提交按钮后,包含答案文本、answer_id 和当前 session_id 的选定复选框将被插入到数据库中的表中。
在 Oracle APEX 4.2 中,我使用经典报表来实现这一点。这实际上是一个糟糕的解决方案,因为报告中的复选框显示为简单的 HTML 复选框,而不是简洁的 JQueryMobile 复选框)。无论如何,这是我目前的解决方案:
是否使用此代码创建经典报告:
SELECT
APEX_ITEM.CHECKBOX(1,answer_id),
answer_id,
answer_text
FROM ANSWERS
WHERE question_ID = :P10_Question_ID;
数据的插入是通过提交过程“提交时 - 计算和验证之后”完成的
这是提交过程的代码:
DECLARE
var_session_id NUMBER := :P0_SESSION_ID;
BEGIN
FOR i in 1..APEX_APPLICATION.G_F01.COUNT LOOP
INSERT INTO STUDENT_ANSWERS
(answer_id, answer_text, session_id)
SELECT a.answer_id, a.answer_text, var_session_id
FROM ANSWERS a
WHERE a.answer_id = APEX_APPLICATION.G_F01(i)
END LOOP;
COMMIT;
END;
但是这个解决方案不起作用。相反,不会向数据库中插入任何内容。
我不知道为什么进程没有插入数据库,也许这里的这一行有问题
WHERE a.answer_id = APEX_APPLICATION.G_F01(i) ?
我什至尝试了一个简单的更新过程来进行测试,但这也不起作用:
BEGIN
FOR i in 1..APEX_APPLICATION.G_F01.COUNT LOOP
UPDATE STUDENT_ANSWERS
SET text = APEX_APPLICATION.G_F03(APEX_APPLICATION.G_F01(i))
WHERE am_id = APEX_APPLICATION.G_F02(APEX_APPLICATION.G_F01(i));
END LOOP;
COMMIT;
END;
谁能告诉我如何在 ORACLE APEX 4.2 中循环检查一个复选框,以及如何在点击提交按钮后将值 ANSWER_ID、ANSWER_TEXT 和 SESSION_ID 插入到 STUDENT_ANSWERS 表中?如果您知道如何在不使用报告而使用简单复选框的情况下执行此操作,这对我来说会更有帮助!
【问题讨论】:
标签: oracle loops checkbox report oracle-apex