項目中咱們須要在界面上點擊一個按鈕,運行後臺一個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; |