Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Memanggil fungsi Oracle melalui Ajax untuk tujuan validasi di tempat di Oracle APEX v4.2.2

Ajax + apex 4.2 =apex.server. proses api
Ini mengharuskan Anda memiliki proses pada titik proses sesuai permintaan halaman atau proses aplikasi. Di dalamnya Anda harus memanggil fungsi Anda dan memberikan parameter, yang dapat berupa item halaman. Untuk memberikan pengembalian, tulis nilai ke buffer http dengan panggilan ke 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;

Anda dapat dengan mudah memberikan apex.server.process dengan item halaman. Penanganan lebih lanjut semuanya dalam javascript.
Catatan peringatan:tipe data secara default disetel ke JSON, dan dengan demikian jika Anda tidak memberikan tipe data default lain dan tidak mengembalikan string json, Anda akan mendapatkan kesalahan penguraian. Jadi, jika Anda mengembalikan teks dalam proses sesuai permintaan seperti INVALID, pastikan untuk menyetel tipe data ke teks!

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');
      };
    }
  } );

Saya tidak akan membagi ini dalam tindakan yang lebih dinamis daripada yang diperlukan, meskipun itu mungkin. Saya pribadi tidak suka mencoba menggunakan tindakan nyata dinamis blok PLSQL, hanya karena lebih tidak jelas untuk ditindaklanjuti jika Anda ingin menangani nilai pengembalian.
Cukup setel tombol Anda untuk tidak mengirimkan halaman, tetapi tindakan ditentukan oleh tindakan dinamis. Kemudian dalam aksi dinamis, buat satu aksi sebenarnya dari tipe, jalankan javascript, dan gunakan panggilan ajax dengan panggilan balik di sana.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menjalankan prosedur lokal menggunakan eksekusi segera?

  2. Menyimpan Alamat IP dalam Tabel Oracle SQL

  3. Kesalahan dalam prosedur tersimpan Oracle

  4. Fungsi PENGGUNA di Oracle

  5. Apakah indeks yang dipartisi secara global lebih baik (lebih cepat) daripada indeks yang tidak dipartisi?