Di dua artikel sebelum ini kita sudah membahas mengenai betapa mudah dan cepatnya Web Developer dapat menambahkan kode untuk menerapkan business-logic yang dijalankan di sisi browser pada Aplikasi Web yang dihasilkan oleh PHPMaker. Di kedua contoh tersebut kita menggunakan masing-masing control CheckBox dan Radio Button untuk mengaktifkan maupun menonaktifkan control TextBox yang berada di bawahnya.
Di artikel yang ini kita masih akan membahas contoh yang digunakan di kedua artikel tersebut. Kali ini kita menggunakan control ComboBox. Untuk itu, Anda harus menyesuaikan tipe control field AndaMhs dari yang sebelumnya CheckBox atau Radio Button menjadi Select atau sering dikenal dengan istilah ComboBox melalui menu: Fields setup -> Edit Tag pada project PHPMaker yang bertalian.
Sedangkan untuk kode yang sebelumnya terdapat di Client Scripts -> Table-Specific -> Add/Copy Page -> Startup Script dan Client Scripts -> Table-Specific -> Edit Page -> Startup Script (jika ada), silahkan diganti masing-masing menjadi seperti yang di bawah ini:
$(document).ready(function() { // Kondisi saat Form di-load if ($("#x_AndaMhs").val() == "Y") { $('#x_NamaMhs').removeAttr('disabled'); } else { $('#x_NamaMhs').attr('disabled','disabled'); } // Kondisi saat ComboBox (Select Option) dipilih nilainya $("#x_AndaMhs").change(function() { if (this.value == "N") { $('#x_NamaMhs').attr('disabled','disabled'); $('#x_NamaMhs').val(''); } else { $('#x_NamaMhs').removeAttr('disabled'); $('#x_NamaMhs').focus(); } }); });
Terakhir, jangan lupa men-generate ulang semua file scripts, lalu jalankan ulang Aplikasi Web tersebut melalui browser untuk mencoba hasilnya.
Dalam contoh kode tadi, kita hanya cukup mengubah dua baris kode saja (silahkan Anda bandingkan sendiri dengan contoh kode yang terdapat di artikel sebelumnya).
Karena sekarang kita menggunakan control ComboBox, maka pemeriksaan kondisi menggunakan nilai pilihan control ComboBox yang terpilih; apakah N atau Y. Jika nilai yang terpilih adalah N, maka TextBox di bawahnya akan non-aktif atau disabled, sebaliknya jika yang terpilih adalah Y, maka TextBox di bawahnya menjadi aktif atau enabled.
Betapa mudahnya menerapkan business-logic dari sisi browser Pengguna pada Aplikasi Web yang dihasilkan oleh PHPMaker, bukan? 🙂
Cak Sobri mengatakan
Yang show/hide om ? kalo itu kan show/disable… ditunggu 🙂
Masino Sinaga mengatakan
Besok hari Jumat, 11 Juli 2014 artikelnya terbit.
Selamat menunggu. 🙂
Tomi mengatakan
Pak Masino, bagaimana untuk men-Disable untuk Atribut Select (yang didalamnya Lookup Table) ?
andi usman mengatakan
numpang tanya pak,saya ada kendala tentang phpmaker
1. bagaimana menampilkan hasil perhitungan pada master detail untuk hasil perhitungan pada sisi client..untuk tabel master bisa,tetapi untuk yang berkaitan dengan master detail tidak bisa berfungsi script client perhitungannya
mksh
Masino Sinaga mengatakan
Sepertinya project ini bisa membantu: http://sourceforge.net/projects/stock-inventory-management/.
andi usman mengatakan
project diatas diatas memang membantu mas,tapi bingung pakenya..oh mau tanya satu hal lagi,kenapa tabel yang mempunyai relasi tebel,hanya salah satu tabel aja berfungsi event scriptnya,padahal penggunaannya sama.
Masino Sinaga mengatakan
Kalau sudah punya file .pmp-nya dijamin tidak bingung. Mengapa? Karena dari dalam file project tersebut kita bisa melihat di bagian mana saja kode yang sudah ditambahkan, baik di Server Events maupun Client Scripts. Anda tinggal men-generate ulang dari PHPMaker.
Untuk table yang memiliki relasi (maksudnya Master/Detail ya?), tergantung di halaman mana script tersebut ditempatkan. Ada beberapa event di halaman Add pada table Master bisa berfungsi juga script-nya di table Detail. Contohnya seperti yang sudah saya bahas pada artikel Mencegah Pengguna Menambah Baris Baru di Tabel Detail Aplikasi Web dari PHPMaker.
Untuk itulah saya sarankan supaya memiliki file .pmp project Stock Inventory Management tadi dengan menjadi member di situs I Love PHPMaker.
Renny Dwi mengatakan
Pak, bagaimana kalau data combo lebih dari dua?
Kondisi if saya juga mengambil dari $.post , saya coba berjalan baik untuk yang kondisi pertama.. Untuk else nya tidak berjalan
Masino Sinaga mengatakan
Kode yang kamu tulis seperti apa?