首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Oracle APEX v4.2.2中通过Ajax调用Oracle函数以进行现场验证

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

Stack Overflow用户
提问于 2014-01-31 15:05:40
回答 1查看 13.5K关注 0票数 3

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

我基本上有一个函数,它接受六个参数,这些参数要么返回'INVALID‘,要么返回'VALID’。

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

在Oracle APEX v4.2.2中,有没有一种新的方法来处理调用函数的这种类型的ajax请求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-31 17:24:55

Ajax +APEX4.2= apex.server.process api

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

代码语言:javascript
复制
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,请确保将数据类型设置为text!

代码语言:javascript
复制
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 action,因为如果你想处理返回值,它会更难处理。

只需将您的按钮设置为不提交页面,而是由动态操作定义的操作。然后在动态操作中创建一个执行javascript类型的true操作,并在那里使用带回调的ajax调用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21474303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档