Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mengetahui Nilai Kunci Beberapa Record Terpilih di Aplikasi Web dari PHPMaker
Membuat Item Menu Link ke URL Eksternal di Aplikasi Web dari PHPMaker
Mudahnya Mengubah Warna Link URL di Aplikasi Web dari PHPMaker

Mengetahui Nilai Kunci Beberapa Record Terpilih di Aplikasi Web dari PHPMaker

Ming, 5 Juli 2015 oleh Masino Sinaga Tinggalkan Komentar

Sudah tidak terhitung lagi keuntungan yang bisa diperoleh oleh Web Developer ketika membangun Aplikasi Web dengan menggunakan PHPMaker. Termasuk pula trik yang akan saya tunjukkan di artikel ini, di mana kita sebagai Web Developer dapat dengan mudahnya mengetahui nilai kunci dari beberapa Record yang terpilih di halaman Delete sebelum Pengguna menghapus data.

Seperti yang kita ketahui, PHPMaker memiliki kemampuan untuk menghasilkan fitur penghapusan beberapa Record sekaligus di Aplikasi Web yang dihasilkan olehnya. Kita sebagai Web Developer hanya perlu mengeset pengaturan yang bernama Multiple delete yang terdapat di bawah tab PHP -> Page Options (Global), untuk pengaturan global. Sedangkan jika ingin menerapkan hanya untuk table tertentu, maka dapat mengaktifkan pengaturan yang sama yang berada di bawah tab Table -> Table-specific Options -> List Page.

Selain itu, PHPMaker juga sudah menyediakan pilihan apakah Web Developer akan men-generate fitur halaman Konfirmasi Penghapusan Record, atau tanpa halaman konfirmasi; sebelum beberapa Record tadi benar-benar dihapus.

Yang dimaksud dengan halaman Konfirmasi Penghapusan Record adalah halaman yang akan ditampilkan setelah Pengguna memilih beberapa Record di halaman List lalu mengklik tombol Delete. Jadi, Pengguna masih diberi kesempatan untuk memeriksa Record-Record yang terpilih tadi sebelum memutuskan untuk melakukan penghapusan. Halaman Konfirmasi Penghapusan Record ini memiliki nama file yang diakhiri kata *delete.php (tanda * menandakan nama Table/View yang terkait).

Untuk menghasilkan halaman Konfirmasi Penghapusan Record tadi, maka kita sebagai Web Developer cukup hanya menghilangkan tanda centang pada pengaturan Inline delete yang lokasinya sama dengan lokasi pengaturan di atas tadi. Sedangkan jika tidak ingin menghasilkan halaman Konfirmasi Penghapusan Record, maka pastikan kita memberi tanda centang di pengaturan Inline delete tersebut.

Selain untuk memberi kesempatan kepada Pengguna untuk memeriksa kembali Record-Record yang akan dihapus, biasanya, halaman Konfirmasi Penghapusan Record ini bermanfaat jika kita sebagai Web Developer ingin melakukan validasi terhadap beberapa Record yang akan dihapus tadi. Untuk itu, maka kita perlu mengetahui nilai kunci dari beberapa Record yang akan dihapus tersebut.

Pertanyaannya adalah, bagaimana cara untuk mengetahui nilai kunci beberapa Record yang terpilih itu? Jangan khawatir, karena PHPMaker sudah menyediakan sebuah method yang bernama GetKeyFilter milik object Page atau Table. Dengan menggunakan method ini, kita sebagai Web Developer dapat mengetahui field-field mana saja yang terlibat sebagai kunci utama atau Primary Key dari setiap Record.

Kita hanya perlu menambahkan sedikit kode PHP saja ke dalam server event Page_Render yang terdapat di bawah lokasi Server Events -> Table-Specific -> Delete Page, sehingga kode selengkapnya menjadi seperti ini:

// Page Render event
function Page_Render() {
	//echo "Page Render";
	$sFilter = $this->GetKeyFilter();
	//echo $sFilter."<br>";
	$sKey = explode("OR", $this->GetKeyFilter());
	$KeyCount = count($sKey);
	$My_Key = "";
	for ($i = 0; $i < $KeyCount; $i++) {
		if ($sKey[$i] <> "") {
			$My_Key = $sKey[$i];                  
			echo $My_Key."<br>";
		}
	}
}

Perhatikanlah bahwa kita mengambil string yang berisi kunci dari Record yang difilter menggunakan method GetKeyFilter, lalu menampungnya ke dalam variabel sFilter. Setelah itu, kita memisahkan string tersebut menggunakan function explode berdasarkan operator OR dan menampungnya ke dalam variabel array. Kemudian kita menampilkan nilai kunci utama dari setiap Record yang terpilih tadi melalui bantuan loop, menggunakan variabel My_Key, lalu menampilkan hasilnya ke layar.

Dengan cara ini, maka kita sebagai Web Developer dapat mengoptimalkan method tersebut untuk melakukan validasi terhadap beberapa Record yang terpilih tadi sebelum benar-benar dihapus. Misalnya, apakah Record-Record yang terpilih tadi digunakan di table lain, dan seterusnya.

O iya, kita menggunakan server event Page_Render milik halaman Delete, untuk memastikan bahwa semua data di halaman ini sudah diambil dari Database dan siap ditampilkan ke Pengguna. Seperti yang kita ketahui, server event ini cocok sekali digunakan untuk memproses data sebelum hasilnya ditampilkan atau di-render ke browser Pengguna.

Sekarang mari kita menggunakan contoh kasus pada table orderdetails dari project demo yang disediakan oleh PHPMaker. Karena table ini menggunakan 2 Field sebagai Primary Key, yaitu OrderID dan ProductID, maka output dari kode di atas adalah seperti yang ditampilkan di bawah ini:

(`OrderID` = 10248 AND `ProductID` = 72)
(`OrderID` = 10250 AND `ProductID` = 41)
(`OrderID` = 10252 AND `ProductID` = 20)

Itu artinya, kita akan menghapus data detail pesanan sebanyak 3 Record dengan nilai kunci utama setiap Record masing-masing ID Pesanan 10248 dan ID Produk 72, ID Pesanan 10250 dan ID Produk 41, serta ID Pesanan 10252 dan ID Produk 20.

Sekarang, mari kita mengembangkan lagi kode di atas dengan menambahkan pemeriksaan kondisi jika ada Record dengan ID Pesanan 10250 dan ID Produk 41 dari antara beberapa Record yang terpilih tadi, maka proses penghapusan secara keselurahan akan dibatalkan oleh sistem, dan Pengguna di-redirect kembali ke halaman List dari orderdetails.

Bagaimana kodenya? Ini dia selengkapnya:

// Page Render event
function Page_Render() {
	//echo "Page Render";
	$sFilter = $this->GetKeyFilter();
	//echo $sFilter."<br>";
	$sKey = explode("OR", $this->GetKeyFilter());
	$KeyCount = count($sKey);
	$My_Key = "";
	for ($i = 0; $i < $KeyCount; $i++) {
		if ($sKey[$i] <> "") {
			$My_Key = $sKey[$i];                  
			echo $My_Key."<br>";
			if (trim($My_Key) == "(`OrderID` = 10250 AND `ProductID` = 41)") {
				$this->setFailureMessage("Data dengan ID Pesanan 10250 dan ID Produk 41 tidak boleh dihapus.");
				$this->Page_Terminate("orderdetailslist.php");
			}
		}
	}
}

Betapa mudah, cepat, dan menyenangkan sekali, bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, GetKeyFilter, multi delete, multi record, multi update, Page_Render, PHPMaker Indonesia, 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.

Membuat Item Menu Link ke URL Eksternal di Aplikasi Web dari PHPMaker
Mudahnya Mengubah Warna Link URL di Aplikasi Web dari PHPMaker

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

  • ReadOnly vs Disabled, Sebaiknya Pilih yang Mana?
  • Mudahnya Menghilangkan Search Operator pada Extended dan Advanced Search di PHPMaker 2024
  • Masino Extensions untuk PHPMaker 2024 Sudah Dirilis, Silahkan Download!
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Review PHPMaker 2024

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Auto Fill yang Fleksibel di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
  • achmad pada Auto Fill yang Fleksibel di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
  • Masino Sinaga pada Menyisipkan Kode Saat Baris Record Ditampilkan di Aplikasi Web dari PHPMaker
  • Shandy pada Menyisipkan Kode Saat Baris Record Ditampilkan di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Menyisipkan Kode Saat Baris Record Ditampilkan di 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 - 2023 | WordPress | Catat masuk | Kembali ke atas