Oracle‎ > ‎Application Express‎ > ‎AJAX‎ > ‎

ページのリロードを行わずにサーバーから情報を取得する

共有コンポーネントでアプリケーションプロセスを作成し、クライアントのJavascriptから呼び出すことで実現できる。

注意が必要なのはプロセスのポイントをオンデマンドに設定することだ。

プロセスとして実行するPL/SQLは以下のように結果を標準出力する形式にする。

DECLARE
BEGIN
  htp.p('TEST');
END;

プロセスが作成できたらクライアント側の処理を作成する。
ボタン等から fGetTestData() を呼び出すようにし、ページ属性のHTMLヘッダーに以下のようなスクリプトを記述する。

<script type="text/javascript">
<!--
function fGetTestData(){
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=AJAX_TEST_PROC',$v('pFlowStepId'));
gReturn = get.get();
get = null;
gReturn = (!gReturn)?'null':gReturn;
$s('P1_RESULT',gReturn);
}
-->
</script>

"pFlowId"と"pFlowStepId"はAPEX側から既定で出力されるオブジェクトになる。
バージョンアップで消える可能性もあるので注意が必要となる。

Comments