当数据类型为文本时,如何评估 pOptions 对象的成功方法的参数?

How to evaluate pOptions object's success method's parameter when dataType is text?

我正在使用 Oracle APEX 21.2.5。我试图在调用 apex.server.process 调用名为“AC 的按需进程时将数据类型 属性 的值设置为“文本”而不​​是默认值“json” ”。当我需要评估“成功”pOptions 对象方法的参数值时,问题就出现了。使用 json 我可以使用 apex_json.open_object, .. write, and close_object 到 return 来自“成功”方法参数持有的过程的值。例如,这是流程的代码....

DECLARE
N NUMBER; 
BEGIN
SELECT 1 INTO N FROM DUAL;
 apex_json.open_object;
 apex_json.write('result', 'ok');
 apex_json.close_object;
END;

这是单击按钮时触发的动态操作的代码...

 apex.server.process("AC", {pageItems: "#P1_DNAME, #P1_LOC" },

 {success: function(ppData) {

   if (ppData = "{result: 'ok'}") {console.log("yes"); }

 }

 });

如您所见,我可以评估“ppData”参数的值。我如何 return 程序中的文本才能像我对 json 数据类型所做的那样对其进行评估?

pData 如果 dataType: "json" 是一个 json 对象,如果 dataType: "text" 是一个字符串。请注意,在您的代码中,您正在将 json 作为字符串进行评估 - 这可以更容易地完成,请参见下面的 json 示例。

这里是 JSON 和文本的例子。

apex.server 处理 JSON 响应

申请流程来源:

DECLARE
BEGIN
    apex_json.open_object;
    apex_json.write('result', 'ok');
    apex_json.close_object;
END;

动态动作javascript代码:

apex.server.process(
  'getResultJSON',                                // Process or AJAX Callback name
  {},  // Parameter "x01"
  {
    success: function (pData) {             // Success Javascript
      if (pData.result == 'ok') {
          apex.item( "P51_SUCCESS_JSON" ).setValue("Result of JSON is OK !")
      } else {
          apex.item( "P51_SUCCESS_JSON" ).setValue("Result of JSON is Not ok :( !")
      }
    },
    dataType: "json"
  }
);

apex.server 处理文本响应

申请流程来源:

DECLARE
BEGIN
  /* use prn to prevent newline after string (htp.p prints newline).
  */
  htp.prn('ok');
END;

动态动作javascript代码:

apex.server.process(
  'getResultText',                                // Process or AJAX Callback name
  {},  // Parameter "x01"
  {
    success: function (pData) {             // Success Javascript
      if (pData == 'ok') {
          apex.item( "P51_SUCCESS_TEXT" ).setValue("Result of TEXT is OK !")
      } else {
          apex.item( "P51_SUCCESS_TEXT" ).setValue("Result of TEXT is Not ok :( !")
      }
    },
    dataType: "text"
  }
);