项目中咱们须要在界面上点击一个按钮,运行后台一个pl sql并把程序运行结果返回给前端,其步骤以下javascript
先介绍js如何调用plsql,plsql将结果传回前端js前端
新建一个按钮,按钮下建立一个dynamic action ,其动做为 Execute javascript code,代码以下java
1ajax 2sql 3json 4spa 5.net 6code 7server 8 9 10 11 12 13 |
apex.server.process("UPDATE_PRODUCTS"//<--- 第二步中process plsql的代码的名字 , {}, { dataType: 'text', success: function(pData) { //成功后执行的function var json_result = JSON.parse(pData); //将字符串转成json格式 if (json_result.retcode == "Y") { apex.message.showPageSuccess(json_result.errbuf); } } }); |
建立一个Ajax callback,名字为UPDATE_PRODUCTS,代码以下
1 2 3 4 5 6 7 |
begin --put your code here apex_json.open_object(); apex_json.write('retcode', 'Y'); apex_json.write('errbuf','ajax调用成功'); apex_json.close_object(); end; |
下面介绍js如何将参数传给plsql,步骤和上一个相似,可是js代码有做更改
js代码以下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
apex.server.process("UPDATE_PRODUCTS"//<--- 第二步中process plsql的代码的名字 , { x01: 23333 //将参数传给pl sql }, { dataType: 'text', success: function(pData) { //成功后执行的function var json_result = JSON.parse(pData); //将字符串转成json格式 if (json_result.retcode == "Y") { apex.message.showPageSuccess(json_result.errbuf); } } }); |
plsql代码以下
1 2 3 4 5 6 7 8 9 10 11 12 |
declare a varchar2(30); begin a := APEX_APPLICATION.g_x01; --读取ajax传过来的数据 --bhsc_bid_pkg.get_bid_result(a ); 传入参数并调取后台程序包 --向ajax返回数据,string格式,可是形式上相似json apex_json.open_object(); apex_json.write('retcode', 'Y'); apex_json.write('errbuf','传入的参数为' || a); apex_json.close_object(); end; |