gpt4 book ai didi

javascript - 在 Oracle APEX v4.2.2 中通过 Ajax 调用 Oracle 函数以进行现场验证

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:30 26 4
gpt4 key购买 nike

我将 Oracle 11g 与 Oracle Apex v4.2.2 结合使用,我想知道在动态操作中通过 ajax 调用调用 Oracle 函数的最佳方式是什么。

我基本上有一个带有六个参数的函数,这些参数返回“无效”或“有效”的结果。

在我的页面中,我希望能够接受用户输入的值,一旦他们按下按钮进行处理,我需要通过 ajax 检查结果是“INVALID”还是“VALID”并立即显示向用户显示一个对话框,通知他们出现了错误。

在 Oracle APEX v4.2.2 中是否有处理此类 ajax 请求以调用函数的新方法?

最佳答案

Ajax + 顶点 4.2 = apex.server.process api
它要求您在页面或应用程序进程的按需进程点有一个进程。在其中你必须调用你的函数并提供参数,这些参数可以是页面项目。要提供返回,请通过调用 htp.p 将值写入 http 缓冲区。

DECLARE
some_var1 VARCHAR2(50);
BEGIN
some_var1 := my_package.my_function(:P1_EMPNO, :P1_DEPTNO);
-- write values back
htp.p(some_var1);
END;

您可以轻松地为 apex.server.process 提供页面项目。进一步的处理都在 javascript 中。
警告注意事项:dataType 默认设置为 JSON,因此如果您不提供其他默认数据类型并且不返回 json 字符串,您将收到解析错误。因此,如果您在按需过程中返回文本(例如 INVALID),请确保将数据类型设置为文本!

apex.server.process ( "MY_PROCESS", {
pageItems: "#P1_DEPTNO,#P1_EMPNO"
}, {
dataType: "text"
, success: function( pData ) {
//pData should contain VALID or INVALID - alert it
alert(pData);
if ( pData === 'INVALID' ) {
// do something here when the result is invalid
// maybe you want to color something red for example
alert('The data you have entered is invalid');
};
}
} );

我不会将其拆分为不必要的动态操作,即使这可能是可能的。我个人不喜欢尝试使用 PLSQL block 动态 true 操作,只是因为如果你想处理返回值,操作起来更晦涩。
只需将您的按钮设置为不提交页面,而是通过动态操作定义的操作。然后在动态 Action 中创建一个类型为 execute javascript 的真实 Action ,并在那里使用带有回调的 ajax 调用。

关于javascript - 在 Oracle APEX v4.2.2 中通过 Ajax 调用 Oracle 函数以进行现场验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21474303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com