Masino Sinaga

A Web Developer Who Helps Web Developers

Anda di sini: Beranda / PHPMaker / Mudahnya Mendeteksi Row Terakhir di Row_CustomAction dari PHPMaker
Mengapa Data Angka Disarankan untuk Selalu Menggunakan Nilai Desimal?
Memanggil Javascript untuk Event Field Tertentu di Aplikasi Web dari PHPMaker

Mudahnya Mendeteksi Row Terakhir di Row_CustomAction dari PHPMaker

Sel, 3 Februari 2015 oleh Masino Sinaga 2 Komentar

Seperti yang sudah kita ketahui, PHPMaker menyediakan server event Row_CustomAction yang memudahkan Web Developer untuk mengeksekusi kode kostum sebanyak jumlah baris yang terpilih di tabel pada halaman List. Melalui server event ini, kita sebagai Web Developer misalnya dapat mengeksekusi sebuah perintah SQL sebanyak jumlah Record yang terpilih tadi.

Suatu ketika, kita ingin memastikan sekaligus menandai Record yang terakhir terpilih di halaman List tersebut. Katakanlah khusus untuk Record yang terakhir, kita akan mengeksekusi perintah SQL yang berbeda dengan Record-Record atau baris sebelumnya. Pernah ingin melakukan hal seperti itu? Bingung bagaimana caranya? Jangan khawatir! Berikut ini solusinya.

Seperti biasa, kita cukup hanya menambahkan sedikit kode PHP saja pada dua buah server event berikut, yaitu Page_Load dan Row_CustomAction.

Katakanlah kita akan memperbarui data di table1 berdasarkan field id sebagai Primary Key, di mana untuk perubahan data di baris terakhir berbeda dengan di baris-baris sebelumnya.

Ini kode di server event Page_Load yang terdapat di bawah bagian Server Events -> Table-Specific -> List Page:

// Page Load event
function Page_Load() {
	//echo "Page Load";
	$GLOBALS["RowSelected"] = 0;
	$this->CustomActions["desc"] = "Update Description"; 
}

Dalam contoh kode di atas, kita mendeklarasikan sebuah variabel global yang bernama RowSelected dan mengesetnya dengan nilai nol. Di bawahnya kita menambahkan sebuah tombol yang bernama Update Description dengan kata kunci penghubung desc kepada server event Row_CustomAction di bawah ini.

Selanjutnya tambahkan kode berikut pada server event Row_CustomAction yang terdapat di bawah bagian Server Events -> Table-Specific -> List Page:

// Row Custom Action event
function Row_CustomAction($action, $row) {
	// Return FALSE to abort
	if ($action == "desc") {
		 $row_max = sizeof(explode("OR", $this->GetKeyFilter()));
		 $GLOBALS["RowSelected"]++;
		 if ($row_max == $GLOBALS["RowSelected"]) {
			ew_Execute("UPDATE table1 SET description = 'This is the last row' WHERE id='" . $row["id"]."'"); 
		 } else {
			ew_Execute("UPDATE table1 SET description = 'Not the last row' WHERE id='" . $row["id"]."'"); 
		 }
	}	
	return TRUE;
}

Perhatikanlah pada kode di atas. Kita mengambil jumlah baris maksimum yang terpilih dengan mengoptimalkan method GetKeyFilter milik object Page atau Table, yaitu dengan memisahkan String berdasarkan kata kunci OR sebagai pemisahnya menggunakan function explode, lalu mengambil jumlah elemen dengan menggunakan function sizeof.

Selanjutnya nilai pada variabel global yang sebelumnya kita definisikan di server event Page_Load ditambahkan dengan nilai satu. Hal ini berfungsi sebagai counter di server event Row_CustomAction. Jika jumlah baris maksimum sama dengan nilai counter saat itu, maka itu artinya saat itu sistem sedang memproses baris yang terakhir. Dalam hal ini kita memisahkan perintah UPDATE untuk baris record terakhir dengan baris record-record sebelumnya.

Mudah sekali bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Page_Load, PHPMaker Indonesia, Row_CustomAction, Server Events, Tutorial PHPMaker

Mengapa Data Angka Disarankan untuk Selalu Menggunakan Nilai Desimal?
Memanggil Javascript untuk Event Field Tertentu di Aplikasi Web dari PHPMaker

Komentar

  1. mardiutomo mengatakan

    Ming, 4 Maret 2018 pada 8:09 pm

    bagaimana mendeteksi sql kita berhasil atau menghasilkan error pada saat kita menggunakan perintah ew_Execute

    Reply
    • Masino Sinaga mengatakan

      Sel, 20 Maret 2018 pada 6:50 pm

      Coba ini:

      $query = "SELECT NamaField FROM NamaTable WHERE blablabla";
      $result = ew_Execute($query) or die("Terjadi error SQL");
      
      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