Di artikel sebelumnya kita sudah membahas mengenai contoh pengimplementasian Custom Validation Function di PHPMaker yang dijalankan di sisi server (server-side). Jika Anda belum membaca/mengetahui artikel tersebut, saya sarankan untuk membacanya terlebih dulu sebelum membaca tulisan di artikel saya berikut ini.
Di artikel ini kita akan membahas contoh yang sedikit berbeda dari artikel sebelumnya, dimana fungsi validasi kostum tersebut akan dijalankan di sisi client (client-side).
Katakanlah Anda sebagai Web Developer sudah memiliki fungsi Javascript yang bernama RangeOfNumber. Fungsi ini akan memvalidasi data angka yang dimasukkan oleh Pengguna harus lebih besar atau sama dengan 20 dan lebih kecil atau sama dengan 80. Data angka selain yang berada di dalam range tersebut akan ditolak oleh sistem.
Langkah Pertama, salin kode berikut ke dalam Global Code yang terdapat di bawah: Client Scripts -> Global -> Pages with header/footer:
function RangeOfNumber(str) { n = parseFloat(str); return (!isNaN(n) && n >= 20 && n <= 80); }
Langkah Kedua, pergi ke menu Tools -> Advanced Settings masih dalam project PHPMaker Anda, lalu di bagian General -> Custom validation functions, tambahkan nama fungsi tadi, yaitu: RangeOfNumber.
Jika sebelumnya di pengaturan tadi sudah ada nama fungsi yang di artikel sebelumnya sudah kita tambahkan bernama: CheckAllowedEmail, maka pengaturan tadi menjadi: CheckAllowedEmail,RangeOfNumber. Perhatikan, bahwa antara satu nama fungsi validasi kostum yang satu dengan lainnya harus dipisahkan dengan karakter koma.
Langkah Ketiga, kembali ke pengaturan Fields di project PHPMaker Anda, lalu pilih salah satu Field yang Anda inginkan, kemudian di bagian Edit Tag -> Validation -> Validate, pilih RangeOfNumber yang berada pada pilihan terakhir atau paling bawah.
Setelah itu, pastikan Anda sudah mengaktifkan pengaturan Client-side (Javascript) yang terdapat dari menu PHP -> General Options -> Validation. Terakhir, generate ulang semua file script dari PHPMaker, dan selamat menikmati hasilnya.
Penting diingat, bahwa jika Anda menggunakan fungsi validasi kostum untuk server-side dan client-side sekaligus untuk object Table yang berbeda di project PHPMaker Anda, maka Anda harus membuat dua versi untuk setiap fungsi validasi kostum yang sama. Contoh, untuk fungsi RangeOfNumber dalam bahasa Javascript yang sudah dibuat di atas, maka Anda harus membuat juga fungsi RangeOfNumber dalam bahasa PHP.
Artinya, PHPMaker akan men-generate kode untuk memanggil fungsi validasi kostum yang versi PHP dan Javascript jika pengaturan Server-side dan Client-side (Javascript) sama-sama diaktifkan.
Betapa mudah dan cepatnya, bukan? 😀
jayadi mengatakan
Bang, bagaimana caranya membatasi input jumlah karakter (maxlength) untuk Textarea ya ?
terima kasih 🙂
Masino Sinaga mengatakan
Pakai kode jQuery di Startup Script saja, di bawah bagian Client Scripts.
Masino Sinaga mengatakan
Artikel berikut contoh kodenya akan saya publikasikan besok di situs ini.
Jadi, jangan kemana-mana! Hehehe… 😀
hendra mengatakan
bagaimana mengambil data SELECT dari server untuk ditampilkan di object field SELECT/combo ?
Masino Sinaga mengatakan
Tinggal ganti saja jenis control yang digunakan oleh Field tersebut dari yang sebelumnya secara standar menggunakan TextBox menjadi Combobox (SELECT), lalu aktifkan Use lookup table dan definisikan pengaturan pada panel Lookup Table di sebelah kanannya.
Silahkan baca-baca topik Field Setup dari menu Help PHPMaker untuk informasi lebih lanjut.