Ada begitu banyak kondisi yang terjadi di sisi Client bisa ditangani dengan sangat mudah di PHPMaker 2023. Contoh paling sederhana, kita bisa menampilkan suatu field jika data di field lain sudah ada datanya, alias tidak blank.
Katakanlah di suatu table kita memiliki dua buah field, masing-masing bernama FieldA dan FieldB. Kondisi mula-mula, saat form Add ditampilkan, maka FieldB dalam keadaan ter-hidden alias tidak ditampilkan. FieldB baru akan muncul jika Pengguna Akhir aplikasi sudah mengisi data di FieldA.
Pada prinsipnya, kita bisa menulis kode di Startup Script di bawah bagian Client Scripts dari project PHPMaker. Selain itu, kita juga bisa menambahkan kode Javascript atau jQuery dari bagian Client side events di bawah Fields setup project PHPMaker 2023.
Langkah pertama, tambahkan kode ini di bagian Startup Script di bawah Client Scripts -> Table-Specific -> Add/Copy Page:
$("#r_FieldB").hide();
Kode itu khusus menangani FieldB yang kondisi mula-mula masih disembunyikan pada form/halaman Add.
Langkah kedua, masukkan kode ini dari bagian Fields setup -> FieldA -> panel Edit Tag -> Client side events:
{ // keys = event types, values = handler functions
"change keyup": function(e) {
// Your code
var $row = $(this).fields();
field_a = $row["FieldA"].value();
if (field_a == "") {
$row["FieldB"].visible(false);
} else {
$row["FieldB"].visible(true);
}
}
}
Kode di atas ini artinya, ketika Pengguna Akhir sedang mengetik data di FieldA, maka FieldB akan otomatis ditampilkan. Sebaliknya, ketika Pengguna Akhir menghapus atau mengosongkan seluruh data yang terdapat di FieldA, maka FieldB menjadi otomatis disembunyikan.
Langkah ketiga, generate ulang semua file script seperti biasa dari PHPMaker 2023.
Setelah semua kode berhasil di-generate, cobalah klik tombol Add di halaman List dari table yang bertalian, lalu Anda akan melihat kondisi mula-mula, hanya FieldA yang ditampilkan.
Sekarang ketikkan data di FieldA, maka FieldB akan otomatis ditampilkan. Cobalah hapus atau kosongkan lagi data di FieldA, maka FieldB akan disembunyikan.
Kesimpulannya, sekarang kita bisa menulis kode di sisi Client dengan sangat mudah dan cepat dari kedua bagian di atas. Bagian pertama dari Startup Script di bawah Client Scripts, sedangkan bagian kedua dari Client side events di bawah Fields setup.
Mengapa kita harus menulis di bagian Startup Script pada halaman Add/Copy? Karena kode ini akan dieksekusi saat form Add dimuat pertama sekali.
Sebenarnya kita bisa menggunakan hanya bagian Startup Script ini untuk menangani saat Pengguna Akhir sedang mengetik data di FieldA. Hanya saja, jika kita menggunakan cara seperti itu, maka kita harus menulis kode lagi di bagian Startup Script pada halaman Edit.
Nah, penggunaan Client Side Events bisa lebih menyederhanakan penulisan kode di dua tempat tadi menjadi cukup di satu tempat saja. Kode yang kita tulis di bagian ini akan otomatis digunakan juga di dua tempat, yaitu form/halaman Add dan form/halaman Edit.
Tidak itu saja, bahkan di halaman Copy dan Search pun kode tersebut masih berlaku. Jadi, jika kita menulis kode di bagian Client Side Events, maka kode tersebut akan berlaku di empat halaman sekaligus, yaitu: Add, Copy, Edit, dan Search!
Sedangkan kode di Startup Script, hanya untuk menangani saat form pertama kali dimuat, sesuai dengan jenis halaman yang diiginkan saja.
Gimana? Keren, ‘kan PHPMaker 2023?
Murniyati mengatakan
Luar biasa. Benar penulisannya menjadi sederhana.
Bagaimana kalau menggunakan Combobox, pak Masino.
Masino Sinaga mengatakan
Ini namanya bertanya dulu sebelum mencoba, hehehe… Pasti belum mencoba kode tersebut untuk Combobox kan?
Kerennya, kode di atas berlaku juga untuk field yang menggunakan Combobox. Di sana sudah ada event change, yang dimiliki oleh control Combobox. Silahkan dicoba langsung.
Murniyati mengatakan
hehehe…..betul sekali belum mencoba pak, luar biasa. bapak benar-benar sepenuhnya telah menguasai sampai sedetail mungkin. Salut.
Kupang mengatakan
Bang bagaimana atasi failed to resize image (original, thumbnail) di phpmakkers 2021.?
Padahal di fild foto sdh jpg, png, dan jpeg
Masino Sinaga mengatakan
Coba disampaikan saja langsung ke forum diskusi PHPMaker.
Murniyati mengatakan
Salam pak,
Ketika kita menerapkan kode dalam artikel ini, ternyata auto fill tidak berjalan pada field yang kita berikan inputkan kodenya. Lalu, solusinya bagaimana pak.
Masino Sinaga mengatakan
Memang seperti itu. Kode di atas ingin menunjukkan, bahwa kita tidak selalu harus menggunakan fitur Auto Fill bawaan PHPMaker yang terdapat di Lookup Table.
Kita bisa membuat fitur auto fill yang mengkombinasikan kode di Client Scripts dan Server Events. Kira-kira begitu maksud dari kode di artikel ini.
Masino Sinaga mengatakan
Solusinya, bisa menggunakan AJAX by API and Client Scripts
andrik mengatakan
selamat pagi pak, izin bertanya pak, bagaimana membuat tampilan tabel supaya bisa Justify atau rata kana kiri , karena setelah generate pasti posisi tabel selalu mepet ke kiri karena jumlah field cuma 3,
Masino Sinaga mengatakan
Cara cepatnya ya tinggal menggunakan Masino Extensions saja mas.
Cara ribetnya ya tinggal tambahkan saja kode css dari bagian HTML -> Styles -> User.
andrik mengatakan
siap pak masino,
jika nanti ada rezeki lebih, saya beli Masino Extensions pak,
izin pak, kalau berkenan, bisa kasih contoh sintak nya, atau mungkin ada artikel dari pak masino yang bisa saya baca
Masino Sinaga mengatakan
andrik mengatakan
trima kasih banyak pak
Alhamdullah sudah bisa , sudah saya coba edit” untuk tampilan dan berhasil