我正在使用 Oracle 11g 和 Oracle Apex v4.2.2,我想知道如何在动态操作中通过 ajax 调用来调用 Oracle 函数的最佳方式。
我基本上有一个带有六个参数的函数,它们返回“INVALID”或“VALID”的结果。
在我的页面中,我希望能够接受用户输入的值,一旦他们按下按钮进行处理,我需要通过 ajax 检查结果是“无效”还是“有效”,并立即向用户呈现一个对话框,通知他们出现错误。
在 Oracle APEX v4.2.2 中是否有一种新的方法来处理这种类型的 ajax 请求以调用函数?
阿贾克斯 + 顶点 4.2 =apex.server.process api
它要求你在页面的按需进程点有一个进程或者一个应用程序进程。在其中,您必须调用函数并提供参数,这些参数可以是页面项。要提供返回,请通过调用将值写入 http 缓冲区htp.p
.
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 块动态 true 操作,只是因为如果您想处理返回值,则操作起来更加晦涩。
只需将按钮设置为不提交页面,而是由动态操作定义的操作即可。然后在动态操作中创建一个执行 javascript 类型的真实操作,并使用带有回调的 ajax 调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)