Oracle
 sql >> база данни >  >> RDS >> Oracle

Извикване на функция на Oracle чрез Ajax за целите на валидиране на място в Oracle APEX v4.2.2

Ajax + apex 4.2 =apex.server. процес api
Изисква се да имате процес в точката на процеса при поискване на страницата или процес на приложение. В него трябва да извикате функцията си и да предоставите параметрите, които могат да бъдат елементите на страницата. За да осигурите връщане, запишете стойности в http буфера с извиквания към htp.p .

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, не забравяйте да зададете типа данни на text!

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 блок динамично истинско действие, само защото е по-неясно за действие, ако искате да се справите с върнати стойности.
Просто задайте бутона си да не изпраща страницата, а действие определени от динамично действие. След това в динамичното действие създайте едно истинско действие от типа изпълни javascript и използвайте извикването на ajax с обратно извикване(я) там.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XMLAGG с проблем с RTRIM

  2. Как да видя Explain Plan в Oracle Sql разработчик?

  3. използвайте LIKE и IN с подзаявка в sql

  4. Как да покажа данни от sys_refcursor в DataGrid на TOAD

  5. Как да подобря производителността на заявката за вмъкване на SQL?