【发布时间】:2020-05-29 08:34:23
【问题描述】:
Oracle 数据库版本 - 12.2
Oracle Apex 版本 - 19.2
我在页面级别有一个 Ajax 调用 Pl/Sql 进程。我已经创建了一个 javascript 函数来调用 apex.server_process 如下所示
function SaveUser() {
apex.server.process("USER_CREATION", {
// p_clob_01:clob,
pageItems: "#P225_USER_CODE,#P225_USER_NAME,#P225_USER_TYPE,#P225_USER_DOB,#P225_MOBILE_NO,#P225_TELE_NO,#P225_EMAIL_ID,#P225_RESTRICT_FROM_DT,#P225_RESTRICT_TO_DT,#P225_PWD_DATE,#P225_FINGER,#P225_PASSWORD_EXP_DAY,#P225_ROLE_SCOPE,#P225_BRANCH,#P225_USER_ID" /*List of the items that are used in your process */
}, {
success: function(pData) {
if (pData.success === true) {
apex.message.showPageSuccess(pData.message);
} else {
apex.message.clearErrors();
apex.message.showErrors([{
type: "error",
location: "page",
message:pData.message,
unsafe: false
}]);
}
}
});
lSpinner$.remove();
}
}
它工作正常。但是当我提交过程时,它会将数据保存到 Db 中。如果我再次提交它使用相同的数据调用该过程。它保存会话状态值。
如何在不再次提交页面的情况下清除会话状态和清除页面以进行 pl/sql 清除缓存。调用 Apex.server_process 后是 Any Javascript API For Clear Cache Page。
如果您有任何想法,请提供帮助。
【问题讨论】:
-
正常流程是提交页面以创建用户。如果存在验证错误,它们将显示在表单页面上,供用户修复并重试。如果成功,用户将被重定向到显示成功消息的另一个页面。您已将处理更改为 Ajax,它不会在成功时执行重定向。你为什么这么做?您希望用户执行的流程是什么?
-
@Dan McGhan。我知道常规程序。但我不想重新加载页面或不想重定向另一个页面。我只想提交数据而不是整个页面。这就是我使用 apex.server 进程的原因。
-
在我提供建议之前,我只是想更好地了解您在做什么以及您想要什么。为什么您不想提交页面或之后重定向?插入新记录后用户应该看到什么?
-
用户将看到一条消息。该页面将准备好进行新的插入。
标签: javascript ajax oracle-apex