Secara umum, Server Events dijalankan pada Aplikasi Web yang di-generate oleh PHPMaker dengan urutan sebagai berikut:
- Page_Loading (Global function)
- Page_Load (Page class method)
- Page_Rendering (Global function)
- Page_Render
- Page_DataRendering
.RecordSet_* / Row_* (Page/Table class method) - Page_DataRendered
- Page_Unload (Page class method)
- Page_Unloaded (Global function)
Sekedar mengingatkan kembali, bahwa kode yang dihasilkan oleh PHPMaker menggunakan OOP (Object Oriented Programming). Sejak versi 9, class Page diwariskan dari class Table, sehingga Anda dapat menggunakan $this di dalam method-method class Page untuk mengakses member-member dari class Table. Untuk mendukung versi PHPMaker yang sebelumnya, object Table masih dipertahankan dan dia menjadi sebuah alias dari object Page, sehingga Anda juga dapat menggunakan $this di dalam method-method class Table untuk mengakses member-member dari class Page.
Contoh:
$sNilaiField = $this->NamaFieldAnda->CurrentValue;
Ini pun semakin membuktikan bahwa betapa mudahnya Anda jika ingin menambahkan kode sendiri melalui bagian Server Events di PHPMaker. Anda tidak perlu menulis kode langsung ke dalam file script yang sudah di-generate oleh PHPMaker. Anda juga tidak perlu memodifikasi Template PHPMaker untuk menambahkan kode Anda sendiri. Cukup tulis kode Anda melalui kerangka kerja yang sudah disediakan dari dalam aplikasi PHPMaker. Semua kode Anda yang ditulis di Server Events akan disimpan di file project PHPMaker Anda.
Page_Unload dan Page_Unloaded merupakan event-event yang terjadi di sisi server yang dipanggil setiap kali halaman diakses dan sebelum HTML ditampilkan ke browser di sisi client. Mereka bukanlah event-event yang dipanggil sebelum Anda meninggalkan sebuah halaman dan memuat kembali halaman tersebut atau pergi ke halaman lainnya. Sebagai contoh, jika Anda men-submit sebuah form di dalam sebuah halaman, biasanya dia men-submit ke halaman itu sendiri, maka itu artinya Anda sebenarnya sedang memuat ulang halaman tersebut, sehingga semua server events akan dipanggil kembali. Contoh lainnya, jika Anda mengklik sebuah hyperlink yang akan membuka halaman lain, maka halaman di sisi server bahkan tidak diakses lagi dan tidak ada server event untuk halaman semula yang akan dipanggil.
Jika sebuah server event adalah sebuah function yang bersifat global, maka tidak ada $this di dalam konteks function tadi. Jika Anda ingin mengacu ke object Page tersebut, maka Anda harus menggunakan function global CurrentPage().
Contoh:
$sNilaiField = CurrentPage()->NamaFieldAnda->CurrentValue;
Server Event sebenarnya merupakan Function atau Method Class. Jika Anda ingin menggunakan variabel global di suatu event, perlu diingat mengenai ruang lingkup variabel PHP, Anda harus menggunakan kata kunci global atau $GLOBALS.
Contoh:
global $conn; $rsData = $conn->Execute("SELECT NamaField FROM NamaTable WHERE blablabla");
atau bisa juga seperti ini:
$rsData = $GLOBALS["conn"]->Execute("SELECT NamaField FROM NamaTable WHERE blablabla");
caksobri mengatakan
Ini yang paling penting om, meletakkan script pada tempatnya.. 🙂
heri mengatakan
nanya om, gimana cara data dalam table menjadi hyperlink, saya sudah lihat demo phpmaker pada tabel cars, yg hyperlinknya disimpan dalam data lain, yang saya inginkan seperti berikut: misal
No | Nama | No HP | Jenis Kartu |
————————————————-
1 | Ahmad | 012345 | Simpati |
http://localhost/test/kartulist.php?cmd=search&t=kartu&psearch=Simpati&psearchtype=
jadi harapan saya akan mencari di table kartu dengan keyword “Simpati”
Terima Kasih
Masino Sinaga mengatakan
Bisa. Tinggal menggunakan server event Row_Rendered, lalu tugaskan property field yang bernama ViewValue untuk menambahkan link ke suatu field tertentu. Silahkan lihat topik Server Events and Client Scripts dari menu Help PHPMaker untuk info dan contoh lebih lanjut.