Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mencegah Pengguna Menambah Data di Halaman Detail Aplikasi Web dari PHPMaker
Mudahnya Mengubah Warna Link URL di Aplikasi Web dari PHPMaker
Nikmatnya Auto-Suggest di Aplikasi Web yang Dihasilkan oleh PHPMaker

Mencegah Pengguna Menambah Data di Halaman Detail Aplikasi Web dari PHPMaker

Jum, 3 Juli 2015 oleh Masino Sinaga 2 Komentar

Di beberapa Aplikasi Web yang selama ini saya buat dengan PHPMaker, sering kali saya harus mencegah Pengguna menambah data di halaman tunggal table Detail. Artinya, Pengguna harus menambahkan data Detail tersebut di halaman Master/Detail Add yang berisi form untuk menambah data ke table Master dan table Detail sekaligus.

Saya yakin, Anda sebagai Web Developer pun pasti pernah ingin mengimplementasikan hal yang sama. Suatu saat Anda tidak ingin mengijinkan Pengguna menambah data secara langsung ke table Detail tanpa melibatkan data Master yang bertalian. Timbul pertanyaan, mengapa?

Penyebab utama hal ini biasanya untuk memastikan bahwa data di table Detail harus ditambahkan secara bersamaan dengan data di table Master. Jika Pengguna diberi kesempatan untuk menambahkan data Master maupun Detail dalam waktu yang berbeda, maka besar kemungkinan salah satu data terlewat untuk dimasukkan. Kalau sudah begini, maka halaman Master/Detail Add adalah solusinya.

Katakanlah kita memiliki dua buah table yang memiliki relasi sebagai Master/Detail. Masing-masing bernama orders (table Master) dan orderdetails (table Detail). Dalam hal ini kita tidak mengijinkan Pengguna menambahkan data secara langsung ke halaman Add milik table Detail orderdetails tanpa melibatkan data ke table Master-nya, yaitu orders.

Pertanyaannya adalah, bagaimana cara kita untuk mencegah Pengguna mengakses halaman Add milik table orderdetails tadi, dan sebagai gantinya, kita harus bisa mengarahkan Pengguna ke halaman Master/Detail Add yang berisi Form untuk menginput data orders dan orderdetails sekaligus?

Ternyata solusinya mudah sekali. Ehm, PHPMaker, gitu lho! Kita hanya perlu menambahkan satu baris kode PHP berikut ke dalam server event Page_DataRendered di bawah lokasi Server Events -> Table-Specific -> Add/Copy Page milik table orderdetails, sehingga kode selengkapnya menjadi seperti ini:

// Page Data Rendered event
function Page_DataRendered(&$footer) {
	// Example:
	//$footer = "your footer";
	if ($this->getCurrentMasterTable() <> "orders") {
		$this->Page_Terminate("ordersadd.php?showdetail=orderdetails");
	}
}

Kita menempatkan kode tersebut di dalam server event Page_DataRendered untuk memastikan semua kode utama yang memuat data di halaman Add tersebut sudah dimuat oleh sistem. Ini merupakan cara aman untuk meredirect ke halaman tertentu. Pastikan juga kita menempatkannya di table orderdetails (bukan di table orders).

Perhatikanlah bahwa kita juga harus memastikan apakah table Master yang saat itu di-load oleh sistem adalah orders dengan menggunakan method getCurrentMasterTable. Hal ini penting, untuk mengakomodir kemungkinan Pengguna menambahkan data baru di table Detail. Jika kita tidak melakukan pemeriksaan ini, maka sampai kapanpun kita tidak dapat menambahkan data baru di table Detail, sekalipun table Master orders dalam sedang keadaan di-load oleh sistem.

Jika tidak ada table Master orders yang di-load, maka langsung redirect Pengguna ke halaman Master/Detail Add menggunakan method Page_Terminate. Method ini memiliki sebuah parameter, yaitu URL halaman Master/Detail Add, di mana data Master orders yang akan ditambahkan berada di Form bagian atas, sedangkan data Detail orderdetails berada di Form bagian bawahnya. Keduanya berada di dalam satu halaman yang sama.

Luar biasa memang dahsyatnya PHP Framework yang dibangun oleh PHPMaker ini. Bayangkanlah, bahwa dia sudah menyediakan kerangka kerja yang demikian rapinya, sehingga memudahkan Web Developer untuk menambahkan hanya sedikit kode saja untuk mencegah Pengguna mengakses halaman tertentu.

Tentu saja kemampuan ini bisa dikembangkan, misalnya dengan menambahkan kondisi hanya untuk Pengguna dengan level tertentu. Itu semua tergantung kebutuhan saja. Yang pasti, kita dapat mengambil kesimpulan bahwa PHPMaker memang powerful sekaligus flexible.

Betapa mudah, cepat, dan menyenangkan sekali, ya? Pada akhirnya, kenikmatan yang tiada taralah yang bisa diperoleh saat menggunakan PHPMaker untuk membangun Aplikasi Web. Bagaimana dengan Anda? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Page_DataRendered, Page_Terminate, PHPMaker Indonesia, redirect, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mudahnya Mengubah Warna Link URL di Aplikasi Web dari PHPMaker
Nikmatnya Auto-Suggest di Aplikasi Web yang Dihasilkan oleh PHPMaker

Komentar

  1. desthy mengatakan

    Sen, 21 November 2016 pada 1:15 pm

    bagaimana cara membatasi user hanya bisa menambahkan data pada table hanya 1 kali saja, setelah user tersebut sudah mamasukkan datanya maka user tersebut tidak dapat menambahkan data baru tapi mengeditnya masih tetap bisa. terimakasih.

    Balas
    • Masino Sinaga mengatakan

      Sel, 22 November 2016 pada 12:20 pm

      Gunakan server event Row_Inserting untuk memeriksa jumlah record di table tersebut, dan jika hasilnya sudah ada 1 record, kembalikan nilai FALSE di server event tadi, untuk mencegah user menambah data.

      Baca topik Server Events and Client Scripts dari menu Help PHPMaker untuk informasi lebih lanjut.

      Balas

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Solusi Buat Field Lookup Table yang Bermasalah di Server Hosting
  • Hati-Hati Meredirect Pengguna Setelah Login di PHPMaker 2025
  • Ini Alasan Mengapa Kalian Harus Selalu Pakai PHPMaker versi Terakhir
  • Masino Extensions for PHPMaker 2025 Now Changed!

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Charly pada Menonaktifkan Field Tertentu Saat Data Diubah pada Aplikasi Web dari PHPMaker
  • Nanda pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Nanda pada Mudahnya Menghitung Saldo per Transaksi di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Menonaktifkan Field Tertentu Saat Data Diubah pada Aplikasi Web dari PHPMaker

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2025 | WordPress | Catat masuk | Kembali ke atas