Masino Sinaga

A Web Developer Who Helps Web Developers

Anda di sini: Beranda / PHPMaker / Memastikan Halaman yang Dibuka Master/Detail Edit di Aplikasi Web dari PHPMaker
Syarat Supaya Pilihan Multiple Muncul di Panel Edit Tag Field Select dari PHPMaker
Menimpa Pengaturan dalam File php.ini Melalui Project PHPMaker

Memastikan Halaman yang Dibuka Master/Detail Edit di Aplikasi Web dari PHPMaker

Ming, 12 Juli 2015 oleh Masino Sinaga 4 Komentar

Seperti yang sudah kita ketahui, PHPMaker menyediakan fungsi global untuk mendeteksi ID dari halaman yang sedang diakses oleh Pengguna. Kita bisa menggunakan fungsi CurrentPageID(), yang akan mengembalikan nilai seperti add, edit, list, view, search, dan seterusnya.

Untuk halaman tunggal memang tidak ada masalah. Contohnya, kita hanya menampilkan data dari satu table tunggal seperti orders saja atau orderdetails saja.

Lalu pertanyaannya adalah, bagaimana cara membedakan antara halaman tunggal dengan halaman Master/Detail yang di dalamnya menyertakan data Master dan Detail sekaligus?

Katakanlah di halaman Master/Detail Edit yang menampilkan data table orders (sebagai Master) dan data table orderdetails (sebagai Detail), kita ingin memastikan bahwa itu adalah halaman Edit untuk mengubah data dari kedua table tadi.

URL dari halaman Master/Detail Edit yang saya maksud, contohnya adalah seperti ini:

ordersedit.php?showdetail=orderdetails&OrderID=123

Solusinya ternyata sangatlah mudah. Kita tetap mengandalkan fungsi global CurrentPageID() tadi, lalu dikombinasikan dengan penggunaan method getCurrentDetailTable milik dari object Page atau Table dari halaman yang sedang kita buka.

Sehingga untuk contoh kasus di atas tadi, kode PHP-nya adalah:

echo "ID Halaman: ".CurrentPageID();
echo "<br>Table Detail: ".CurrentPage()->getCurrentDetailTable();

dan akan menampilkan keluaran hasil seperti ini:

ID Halaman: edit
Table Detail: orderdetails 

O iya, kode tersebut bisa Anda tempatkan misalnya di server event Page_Render yang lokasinya berada di bawah Server Events -> Table-Specific -> Edit Page.

Jadi, arti dari keluaran kode di atas, kita sedang membuka halaman Edit yang mengandung data table Detail orderdetails, sehingga bisa disimpulkan bahwa halaman yang diakses saat itu adalah halaman Master/Detail Edit.

Perlu diketahui juga, bahwa PHPMaker selain bisa menampilkan form Master/Detail Edit untuk satu table Detail, dia juga bisa menampilkan halaman Master/Detail Edit untuk beberapa table Detail. Jadi, method getCurrentDetailTable tadi akan mengembalikan lebih dari satu nama table Detail, di mana antara satu table Detail dengan table Detail lainnya dipisahkan dengan karakter koma.

Sedangkan jika kode di atas dijalankan juga di halaman tunggal orders saja atau orderdetails saja, maka method getCurrentDetailTable tadi akan mengembalikan nilai string kosong.

Dari kode di atas, kita dapat melakukan pemeriksaan melalui server event Page_Render halaman Edit milik table Master (sekali lagi, table Master dan bukan table Detail), sehingga kode selengkapnya menjadi seperti ini:

// Page Render event
function Page_Render() {
	//echo "Page Render";
	if (CurrentPageID() == "edit" && CurrentPage()->getCurrentDetailTable() == "orderdetails") {
		// tulis kode Anda di sini saat mode Master/Detail Edit ...
		// ...
	}
}

Kesimpulannya, kita sebagai Web Developer dengan mudahnya bisa membedakan apakah halaman itu adalah halaman Edit tunggal (untuk satu table) atau halaman Master/Detail Edit (untuk dua table atau lebih).

Wow, betapa mudah, cepat, simpel, dan menyenangkan sekali, bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, getCurrentDetailTable, Master/Detail, Master/Detail Edit, PHPMaker Indonesia, Server Events, Tutorial PHPMaker

Syarat Supaya Pilihan Multiple Muncul di Panel Edit Tag Field Select dari PHPMaker
Menimpa Pengaturan dalam File php.ini Melalui Project PHPMaker

Komentar

  1. alfa mengatakan

    Sen, 4 April 2016 pada 10:06 pm

    Selamat malam pak….Bila tombol edit di table master/detil sudah diedit sekali langsung read only dan sudah tidak bisa diedit lagi gimana caranya ya pak maksud sya contoh kodenya mohon bantuanya pak….trimakasih

    Reply
    • Masino Sinaga mengatakan

      Sel, 5 April 2016 pada 9:57 am

      Sekarang saya tanya balik, supaya bisa tahu apakah sudah pernah diedit atau belum, apa yang seharusnya Anda lakukan pada table yang terkait? Perlu ada tambahan field, nggak? Coba jawab dulu.

      Reply
  2. alfa mengatakan

    Sel, 5 April 2016 pada 10:22 am

    Sudah sya coba edit pak…..dan sya perlu tambahan field…….contohnya sya punya order dan order detil modify nya kode dari kedua table tersebut….yang saya akan edit ialah table orderdetil di kolom keterangan….maksud say sih sebenarnya agak mirip dengan pembuatan surat jalan…..bila surat jalan dicetak dengan no tertentu maka sudah tidak bisa diedit lg…..mohon bantuanya pak

    Reply
    • Masino Sinaga mengatakan

      Sel, 5 April 2016 pada 10:41 am

      Nah, itu logikanya sudah dapat kan. Jika sudah pernah diedit, update field tambahan tadi dengan nilai tertentu. Selanjutnya saat menampilkan halaman itu kembali, lakukan query ke database, cek nilai pada field tambahan tadi, dan jika nilainya sesuai dengan kriteria tertentu, tinggal disable aja tombol Edit-nya menggunakan server event ListOptions_Rendered. Gampang kan?

      Reply

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

  • Alasan 21 Harus Pakai Masino Extensions: Form Wizard dengan jQuery SmartWizard v7
  • Alasan 20 Harus Pakai Masino Extensions: Maximum Record per Page
  • Alasan 19 Harus Pakai Masino Extensions: Custom Breadcrumb Links
  • Alasan 18 Harus Pakai Masino Extensions: Improvement User Level Permissions
  • Alasan 17 Harus Pakai Masino Extensions: Dynamic Permission for Export Data

Menu

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

Komentar Terbaru

  • Alasan 21 Harus Pakai Masino Extensions: Form Wizard dengan jQuery SmartWizard v7 pada Alasan 10 Harus Pakai Masino Extensions: Form Wizard
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Charly pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Charly pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025

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