Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Menambahkan Validasi Sendiri di Aplikasi Web dari PHPMaker
Mudahnya Meredirect ke Halaman Tertentu di Aplikasi Web dari PHPMaker
Mudahnya Mengganti Teks Pesan di Aplikasi Web dari PHPMaker

Mudahnya Menambahkan Validasi Sendiri di Aplikasi Web dari PHPMaker

Kam, 26 Juni 2014 oleh Masino Sinaga 20 Komentar

Setiap halaman di Aplikasi Web yang memiliki Form, baik untuk menambah, mengubah, atau bahkan mencari data, pasti memiliki kode untuk memvalidasi data yang dimasukkan ke Form tersebut. Tidak terkecuali dengan Aplikasi Web yang dihasilkan oleh PHPMaker. Setiap data harus divalidasi terlebih dulu, dan PHPMaker akan membangkitkan kode standar yang bertujuan untuk memvalidasi data yang dimasukkan ke Form tadi.

Sering kali Web Developer ingin menambahkan validasi sendiri selain validasi yang sudah dibuatkan oleh PHPMaker. Untuk itu dibutuhkan mekanisme yang memudahkan Web Developer untuk menerapkan validasi tambahan. Fitur server event selama ini sudah dikenal oleh Web Developer dapat mempercepat proses pengimplementasian business-logic di Aplikasi Web yang dihasilkan oleh PHPMaker.

PHPMaker sudah menyediakan sebuah server event yang bernama Form_CustomValidate. Server event ini dipanggil setelah validasi standar yang dilakukan pada sebuah Form. Anda sebagai Web Developer dapat menggunakan server event ini untuk melakukan validasi yang bisa Anda kostumisasi sendiri. Secara umum, data di suatu Form dapat diakses dengan menggunakan sintaks seperti ini:

 
$this->NamaFieldAnda->FormValue

Cara alternatif lainnya, Anda dapat memperoleh semua nilai di suatu Form ke dalam sebuah array terlebih dulu:

$rs = $this->GetFieldValues("FormValue");

Setelah itu, Anda cukup mengakses nilai di suatu Field dengan menggunakan sintaks untuk mengakses elemen di suatu array. Katakanlah di Form tadi terdapat tiga Field yang masing-masing bernama Field1, Field2, dan Field3, maka untuk mengakses nilai dari ketiga Field tersebut, cukup dengan menggunakan:

$sField1 = $rs["Field1"];
$sField2 = $rs["Field2"];
$sField3 = $rs["Field3"];

Sebuah argumen $CustomError akan dilewatkan ke server event ini. Anda sebagai Web Developer dapat menambahkan pesan error sendiri (jika perlu), lalu mengembalikan nilai FALSE jika nilai di Form tadi tidak memenuhi persyaratan validasi yang Anda tentukan.

Supaya lebih jelas, mari langsung simak contoh berikut. Kode di bawah ini akan memastikan suatu Field yang bernama Qty harus memiliki nilai Integer dalam kelipatan 10:

function Form_CustomValidate(&$CustomError) {
     $rs = $this->GetFieldValues("FormValue"); // Dapatkan nilai Form sebagai array
    if (intval($rs["Qty"]) % 10 <> 0) {
        // Kembalikan pesan error dengan menggunakan variabel $CustomError
        $CustomError = "Jumlah Pesanan harus kelipatan 10.";
        return FALSE; // Kembalikan nilai FALSE jika validasi tidak memenuhi syarat
    } else {         
        return TRUE;
    }    
}

Perlu Anda ketahui, bahwa server event Form_CustomValidate hanya terdapat di beberapa halaman berikut saja: Add/Copy, Edit, List, Multi-Update, dan Search.

Mungkin Anda bertanya, mengapa server event ini terdapat di halaman List dan Search. Sementara yang kita ketahui selama ini, kedua halaman tersebut tidak terkait dengan pemanipulasian data secara langsung ke Database.

Jawabannya tidak lain karena di halaman List terdapat fitur yang memungkinkan Pengguna dapat memperbarui satu atau beberapa Record sekaligus tanpa harus menampilkan halaman Multi-Update terlebih dulu. Sedangkan halaman Search digunakan untuk memungkinkan Web Developer menambahkan validasi data yang dimasukkan di Form Pencarian Lanjutan.

Betapa fleksibelnya PHPMaker dapat digunakan untuk membantu Web Developer dalam membangun Aplikasi Web, bukan? ๐Ÿ™‚

Ditempatkan di bawah: PHPMaker Ditag dengan:Form_CustomValidate, PHPMaker Indonesia, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mudahnya Meredirect ke Halaman Tertentu di Aplikasi Web dari PHPMaker
Mudahnya Mengganti Teks Pesan di Aplikasi Web dari PHPMaker

Komentar

  1. arigus wahyu mengatakan

    Kam, 1 Desember 2016 pada 10:43 am

    selamat siang pak masino, saya baru di phpmaker, maaf mau tanya, misalnya sebelum menambah validasi dilakukan cek data ke tabel lain dulu (melakukan custom query) itu bagaimana caranya? terimakasih

    Balas
    • Masino Sinaga mengatakan

      Kam, 1 Desember 2016 pada 11:17 am

      Pakai fungsi global yang bernama ew_Execute atau ew_ExecuteScalar untuk melakukan query.

      Lihat topik Server Events and Client Scripts dari menu Help PHPMaker, lalu scroll ke bagian paling bawah halaman Help tadi, pelajari sub-topik Some Global Functions untuk informasi lebih lanjut.

      Balas
      • arigus wahyu mengatakan

        Kam, 1 Desember 2016 pada 11:31 am

        oke pak masino, saya coba dahulu ๐Ÿ˜€

        Balas
        • arigus wahyu mengatakan

          Kam, 1 Desember 2016 pada 11:31 am

          terimaksh ๐Ÿ™‚

          Balas
          • Masino Sinaga mengatakan

            Kam, 1 Desember 2016 pada 1:21 pm

            Sama-sama.

            Balas
  2. arigus wahyu mengatakan

    Sab, 3 Desember 2016 pada 9:20 am

    Ternyata bisa pak masino, terimaskasih pencerahannya :D. ternyata php maker sungguh asik ., oiya pak mau bertnya lagi , php maker bisa mengammbil nilai dari json g ya pak?
    misalnya ada:
    var contoh_jason= ‘{“arigus”:”arigus wahyu”,”jalan”:”Oslo West 16″,”tlp”:”555 1234567″}’;

    saya ingin mengambil “nama” untuk di masukan ke control ttu misalnya textbox setelah event ttu.

    mhon pencerahanya lagi pak masino :D, maaf bnyak nanya, masih belajar.

    Balas
    • arigus wahyu mengatakan

      Sab, 3 Desember 2016 pada 9:22 am

      maaf ralat ๐Ÿ™‚
      ar contoh_jason= โ€˜{โ€œnamaโ€:โ€arigus wahyuโ€,โ€jalanโ€:โ€Oslo West 16โ€ณ,โ€tlpโ€:โ€555 1234567โ€ณ}โ€™;

      Balas
      • Masino Sinaga mengatakan

        Sab, 3 Desember 2016 pada 3:14 pm

        Bisa. Pelajari function ew_ExecuteJson yang terdapat pada file phpfn*.php.

        Balas
        • arigus wahyu mengatakan

          Ming, 4 Desember 2016 pada 7:18 am

          siapa sangka ternyata file phpfn10 ada di dalam file .rar foledr themes, ๐Ÿ˜€
          saya sempat kesulitan mencarinya pak masino, ttetapi akhirnya puji tuhan, ktmu ๐Ÿ˜€
          maaf pak masino kembali mohon pencerahan ๐Ÿ™‚

          saya punya file refDIA.php, dimana ketika dijalankan di browser menghasilkan format json spt dibawh ini,
          Array
          (
          [metadata] => Array
          (
          [code] => 200
          [message] => OK
          )

          [response] => Array
          (
          [count] => 20
          [limit] => 20
          [list] => Array
          (
          [0] => Array
          (
          [kodeDiagnosa] => C25
          [namaDiagnosa] => Malignant
          )

          [1] => Array
          (
          [kodeDiagnosa] => C47
          [namaDiagnosa] => Malignant neoplasm
          )
          )

          [start] => 0
          )

          )

          kemudian saya memanggil fungsi yang bapak jelaskan diatas sebagai berikut

          CLientScript->Tablespecific->addadnCopyPage->startup scrpit

          $(“input[name=’x_ContactName[]’]”).click(function() {
          if (this.checked) {
          alert(“tes alert cek”);
          ContactTitle->CurrentValue = $hasil_json->response[0]->namaDiagnosa;
          ?>
          } else {
          alert(“tes alert un cek”);

          }
          });

          ketika dijalankan dibrowser tidak bisa menampilkan data dari file php yang berisi formatjson tsb, apakah saya salah dalam meuliskan kode, apkah sya salah dalam mempergunakan parameter fungsi, atau bukan seperti ini menulis kodenya di php maker, ataukah ada kesalahan yang saya tidak tau , mhon pencerahannya pak masino, masih awam di phpmaker,

          Balas
          • Masino Sinaga mengatakan

            Sen, 5 Desember 2016 pada 2:36 pm

            Sori, belum bisa bantu. Silahkan baca-baca dan pelajari lagi menu Help.

            Balas
  3. arigus wahyu mengatakan

    Ming, 4 Desember 2016 pada 7:23 am

    ralat kode maaf pak masino ๐Ÿ™‚

    $(“input[name=’x_ContactName[]’]”).click(function() {
    if (this.checked) {
    alert(“tes alert cek”);
    ContactTitle->CurrentValue = $hasil_json->response[0]->namaDiagnosa;
    ?>

    } else {
    alert(“tes alert un cek”);

    }
    });

    Balas
    • arigus wahyu mengatakan

      Ming, 4 Desember 2016 pada 7:28 am

      ketika komentnya dipublish , ada bagian kode yang hilang, ini sengaja saya kasih command
      /*
      $(“input[name=’x_ContactName[]’]”).click(function() {
      if (this.checked) {
      alert(“tes alert cek”);
      ContactTitle->CurrentValue = $hasil_json->response[0]->namaDiagnosa;

      ?>

      } else {
      alert(“tes alert un cek”);

      }
      }); */

      Balas
      • arigus wahyu mengatakan

        Ming, 4 Desember 2016 pada 7:30 am

        // $hasil_json = ew_ExecuteJson(“refDIA.php”,$FirstOnly = TRUE);
        seharus nya ada bagian ini ๐Ÿ™
        kok hilang lagi ya??, mhon maaf sekali pak masino, bkin spam di komentar

        Balas
        • Masino Sinaga mengatakan

          Sen, 5 Desember 2016 pada 2:37 pm

          Silahkan dicoba sendiri ya.

          Balas
  4. Fajar mengatakan

    Kam, 23 November 2017 pada 8:50 am

    selmat pagi pak masino ,
    saya mencoba script

    $rs = $this->GetFieldValues(“FormValue”);
    $tt = $rs[“nom”];
    if ($tt > 5 ) {
    $CustomError = “Jumlah Pembelian Tidak Boleh”;
    return FALSE;
    }
    else {
    return TRUE;
    }
    filed nom itu harus di isi kurang dari angka 5,
    saya memakai php maker v 2017.0.7 .
    saya memakai Form_CustomValidate pada halaman add.

    tetapi saya terkendala, tidak daapat tervalidasi, berapapun nilai nya ttp bisa masuk. mhon pencerahan pak masino, saya salah dimana. terimkash

    Balas
    • Masino Sinaga mengatakan

      Jum, 24 November 2017 pada 12:41 pm

      Ganti baris ini:
      $tt = $rs[โ€œnomโ€];

      menjadi:
      $tt = intval($rs[โ€œnomโ€]);

      Balas
  5. bagus mengatakan

    Ming, 9 Mei 2021 pada 2:51 pm

    V2019, coba di master detail. di tabel masternya di bagian server-table spesific-add/copy page-FormCustomValidate. kasih ini kok tak muncul messagenya & tak kesimpan, ada saya kurang dimana ? diberi intval juga sama. Terimakasih

    function Form_CustomValidate(&$CustomError) {
    $rs = $this->GetFieldValues(“FormValue”);
    if ($rs[“kepalaKK”] = “”) {
    $CustomError = “harus isi detail nama Kepala Keluarga.”;
    return FALSE;
    } else {
    return TRUE;
    }
    }

    Balas
    • Masino Sinaga mengatakan

      Ming, 9 Mei 2021 pada 3:41 pm

      Wah, sudah lama tidak pakai v2019. Rata-rata aplikasi web saya sudah di-upgrade minimal ke v2020.

      Itu nama field-nya sudah benar kepalaKK? Bukan KepalaKK?

      Balas
      • bagus mengatakan

        Sel, 11 Mei 2021 pada 10:15 am

        oh ternyata harus huruf kecil c nya menjadi $customError .

        Tanya lagi bang, kalau $rs = $this->GetFieldValues(โ€œFormValueโ€);
        tapi fieldnya ambil dari tabel detail bagaimana caranya ?
        tujuannya agar ketika input master tabel juga harus input detail tabel.
        type pagenya accordion. thanks

        Balas
        • Masino Sinaga mengatakan

          Sel, 11 Mei 2021 pada 12:14 pm

          Pakai global function ExecuteScalar().

          Lihat di sub-topic Some Global Functions di bawah topik Server Events and Client Scripts dari menu Help PHPMaker.

          Balas

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Pos-pos Terbaru

  • ReadOnly vs Disabled, Sebaiknya Pilih yang Mana?
  • Mudahnya Menghilangkan Search Operator pada Extended dan Advanced Search di PHPMaker 2024
  • Masino Extensions untuk PHPMaker 2024 Sudah Dirilis, Silahkan Download!
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Review PHPMaker 2024

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Masino Sinaga pada Auto Fill yang Fleksibel di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
  • achmad pada Auto Fill yang Fleksibel di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
  • Masino Sinaga pada Menyisipkan Kode Saat Baris Record Ditampilkan di Aplikasi Web dari PHPMaker
  • Shandy pada Menyisipkan Kode Saat Baris Record Ditampilkan di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Menyisipkan Kode Saat Baris Record Ditampilkan di Aplikasi Web dari PHPMaker

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2023 | WordPress | Catat masuk | Kembali ke atas