Ajax + apex 4.2 =apex.server.プロセス API
ページのオンデマンド プロセス ポイントまたはアプリケーション プロセスでのプロセスが必要です。その中で、関数を呼び出してパラメーターを提供する必要があります。これは、ページ アイテムになる可能性があります。リターンを提供するには、htp.p
への呼び出しで http バッファに値を書き込みます .
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 を実行するタイプの真のアクションを 1 つ作成し、そこでコールバックを使用して ajax 呼び出しを使用します。