Hari ini kita belajar bagaimana cara menyembunyikan tombol Edit di halaman List berdasarkan nilai tertentu di suatu field, pada Aplikasi Web yang dihasilkan oleh PHPMaker 2021.
Katakanlah kita akan menyembunyikan tombol Edit di halaman List dari table Orders jika nilai pada kolom Order ID sama dengan 11085. Contoh project-nya dapat diunduh dan dicoba di localhost masing-masing.
Solusinya cukup dengan menambahkan 2 baris kode PHP berikut ke dalam server event ListOptions_Rendered pada lokasi berikut: Server Events -> Table-Specific -> List Page milik table orders:
if ($this->OrderID->CurrentValue == "11085") $this->ListOptions["edit"]->Body = "";
Pastikan untuk men-generat file script dari PHPMaker 2021 seperti biasa.
Kemudian, silahkan akses Aplikasi Web dari browser, login dengan menggunakan username admin dan password master, lalu buka menu Orders.
Perhatikan pada record yang memiliki Order ID = 11085, maka tidak ada tombol Edit di baris record tersebut.
Tentu saja data di Aplikasi Web Anda tidak selalu sama dengan data yang saya gunakan. Jika tidak ada Order ID 11085, Anda bisa menyesuaikan kode di atas dengan Order ID lainnya yang terdapat di halaman List tadi.
Hanya dengan dua baris kode itu saja, kita sudah bisa menyembunyikan tombol Edit sesuai dengan kebutuhan kita.
Tidak perlu lagi menulis kode sampai berpuluh-puluh, beratus-ratus, atau bahkan beribu-ribu baris, hanya untuk mengimplementasikannya. Kenapa? Karena sisanya sudah ditangani oleh PHPMaker 2021.
Betapa cepat dan mudahnya, bukan?
Hans mengatakan
Pak Masino, gimana cara mendapatkan extension masino?
Masino Sinaga mengatakan
Caranya gampang sekali:
1. Kunjungi website ILovePHPMaker.com,
2. Klik menu Membership Options,
3. Klik tombol Paypal Check Out.
4. Ikuti petunjuk di halaman selanjutnya.
mhfuj mengatakan
hallo pak masino,kalau sudah jadi member lalu ingin bertanya menggunakan bhs indonesia bisa kan pak?
Masino Sinaga mengatakan
Tentu bisa dong.
Pandanwangiii mengatakan
Halo, Pak. Saya mau tanya lagi, jika saya mempunyai master/detail table, di field master saya ada pilihan checkbox, jika saya pilih salah satu/banyak checkbox maka otomatis data tersebut tampil di detail table. Apakah memungkinkan? Kalo iya memungkinkan, apa yg harus saya pelajari? Terima kasih sebelumnya, Pak.
Masino Sinaga mengatakan
Yang harus dipelajari adalah kode jQuery untuk menampilkan/menyembunyikan suatu elemen berdasarkan class atau id selector-nya.
Pandanwangiii mengatakan
Contoh kasusnya kayak gini Pak, saya punya tbl-order yg berelasi dengan tbl-orderdetail, kemudian saya mempunyai 2 table lain yg berelasi, misal tbl-inv dan tbl-invdetail, di tbl-inv ada satu field yg namanya order_id, ketika saya pilih order_id, di table detail otomatis terisi sama data yg berelasi tadi. Konsepnya pake lookup. Saya baca soal api, itu kira-kira bisa ngga buat solve masalah saya?
Masino Sinaga mengatakan
Iya, bisa pakai API dan Client Scripts. Baca topik Lookup Table dari menu Help PHPMaker, lalu lihat contoh kodenya di bagian Ajax by API and Client Scripts.
Aldi Dwi Ferdian mengatakan
Pak Masino, Izin bertanya, php maker ini bisa buat aplikasi seperti Point of Sales ngga ya?
Masino Sinaga mengatakan
Bisa.
Abu Syifa mengatakan
Pak masino apa cara diatas kalo dipanggil url halaman edit apakah masih bisa?
Masino Sinaga mengatakan
Tentu bisa dong.
Untuk mencegahnya, simak solusinya di artikel ini: Mencegah Pengguna Akhir Mengubah Data Melalui Akses URL di PHPMaker 2021.
Pandanwangiii mengatakan
Selamat siang, Pak. Saya mau tanya lagi nih pak, saya dah berhasil populate data di detail table, lewat page rendering, permasalahannya, data yg tampil masih semua data belum terfilter berdasarkan checkbox di master table.
Yang mau saya tanyakan adalah,
1. Cara agar data yg tampil sesuai menurut field checkbox di master tabel itu gimana ya pak? Field di master table itu pake lookup (modal dialog), bisa kah saya pake onchange event di field tersebut? Kalo bisa, saya mesti taruh codenya dimana? Apakah di detail table atau di master table? Dan di section mana saya harus taruh codingnya?
2. Apakah bisa jika kita memilih lebih dari 1 checkbox, data yg diinput ke database berformat seperti ini {“123”,”124 “}? Kalo disaya hasil yg dinput jadinya 123124, Pak.
Terima kasih sebelumnya Pak.
Masino Sinaga mengatakan
1. Bisa pakai fitur Dynamic Selection List, karena fitur ini mendukung untuk Master/Detail.
2. Untuk multiple value seperti itu, seharusnya data yang tersimpan 123,124. Karakter default pemisah (separator) adalah karakter koma.