Sering kali kita harus menonaktifkan field tertentu di sebuah form. Tidak terkecuali dengan aplikasi yang dihasilkan oleh PHPMaker. Pertanyaannya, sebaiknya pakai yang mana? ReadOnly atau Disabled?
Sebelum membahas lebih detail, PHPMaker 2024 sudah menyediakan method milik object Table atau Page yang bernama setFieldProperties. Seperti namanya, method ini berfungsi untuk mengeset attribute tertentu milik semua field yang terdapat di dalam form pada object Table atau Page tadi.
Method ini sangat bermanfaat dan efektif, jika kita ingin mengeset semua field di sebuah form dengan attribute tertentu, tanpa harus mengeset satu per satu field. Bayangkan jika di sebuah form terdapat 20 field atau lebih, betapa repotnya jika harus mengeset satu per satu menggunakan kode.
Method setFieldProperties ini memiliki dua param. Pertama adalah attribute, dan yang kedua adalah nilai true atau false. Attribute bisa berupa nilai ReadOnly atau bisa juga Disabled. Jika param kedua bernilai true, maka itu artinya semua field akan diset menjadi ReadOnly atau Disabled (tergantung attribute pada param pertama tadi).
Contoh jika menggunakan ReadOnly:
$this->setFieldProperties("ReadOnly", true);
Contoh jika menggunakan Disabled:
$this->setFieldProperties("Disabled", true);
Jika attribute pada param pertama menggunakan ReadOnly, maka tidak semua control di form tersebut style atau tampilannya seperti sedang ReadOnly. Hanya control Select atau Combobox saja yang berwarna gray sehingga terlihat ReadOnly. Sedangkan control Textbox, Checkbox, dan Radio Button (input control), tetap berwarna latar belakang putih, sehingga sekilas nampaknya seperti tidak ReadOnly, meskipun sebenarnya ReadOnly.
Jika attribute pada param pertama menggunakan Disabled, maka warna background control Textbox akan menjadi gray, sama seperti warna background control Select atau Combobox. Sedangkan warna background control Checkbox dan Radio Button tetap memiliki warna background putih.
Perbedaan utama di antara keduanya adalah, jika control di sebuah form diset sebagai Disabled, maka saat form di-submit, data pada field tersebut tidak akan tersimpan ke database. Jika field tersebut mengijinkan nilai kosong atau nol, maka nilai kosong atau nol itulah yang akan tersimpan ke database. Jadi, berhati-hatilah jika menggunakan attribute Disabled.
Tapi tenang, jika kita menggunakan Disabled, kita masih bisa mengatasi permasalahan tadi dengan mengisi nilai baru pada field yang Disabled tadi dengan nilai lama pada field tersebut, menggunakan server event Row_Updating. Meskipun terkesan menjadi sedikit ribet juga, karena harus menangani per masing-masing field yang bertalian.
Mau pilih pakai yang mana? ReadOnly atau Disabled? Tergantung kondisi dan kebutuhan. Masing-masing ada kelebihan dan kekurangannya. Jika pakai ReadOnly, maka biasanya perlu kode CSS tambahan untuk mengeset warna background control Textbox menjadi gray. Jika pakai Disabled, maka ada kode tambahan untuk mengisi nilai baru pada masing-masing field dengan nilai lamanya, supaya data tidak hilang saat form di-submit.
Tinggalkan Balasan