Masino Sinaga

Web Development, PHPMaker, & PHP Report Maker

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

Juli 3, 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 dan ilovephpmaker.com.

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

Comments

  1. desthy mengatakan

    November 21, 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

      November 22, 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 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pos-pos Terbaru

  • Server Event Page_Render dan Page_Rendering di PHPMaker, Apa Sih Bedanya?
  • Begini Mudahnya Mengubah Judul Browser Secara Dinamis di PHPMaker 2021
  • Solusi Supaya PreviewRow dan PreviewOverlay Bisa Sama-Sama Berfungsi di PHPMaker 2021
  • Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada PHPMaker 2021
  • Seperti Ini Mudahnya Menyembunyikan Data Label di Chart dari PHPMaker 2021

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Setting Import Data Berikut Wajib Anda Ketahui Bedanya di PHPMaker 2021
  • Masino Sinaga pada Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada PHPMaker 2021
  • Masino Sinaga pada Mudahnya Menambahkan Global Function untuk Auto-Update Field di PHPMaker
  • Abu Syifa pada Setting Import Data Berikut Wajib Anda Ketahui Bedanya di PHPMaker 2021
  • Abu Syifa pada Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada PHPMaker 2021

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. 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 - 2019 | WordPress | Catat masuk | Kembali ke atas