Satu lagi fleksibilitas yang diberikan oleh PHPMaker kepada Web Developer, yaitu kemampuan melewatkan sebuah nilai melalui alamat URL kepada sebuah halaman. Anda pasti pernah ingin membuat form Add (untuk menambah data) yang pada Field tertentu, datanya terisi secara otomatis berdasarkan nilai yang dilewatkan via alamat URL. Jadi, Pengguna tidak perlu menginput datanya lagi secara manual.
Katakanlah field yang bernama KodeStatus yang menggunakan control TextBox pada form Add akan terisi datanya ketika Pengguna mengakses URL seperti ini: pelangganadd.php?KodeStatus=2, maka Anda cukup menyisipkan kode berikut ke dalam server event Page_Render pada halaman Add, sehingga selengkapnya menjadi seperti ini:
// Page Render event function Page_Render() { //echo "Page Render"; if (isset($_GET["KodeStatus"])) { $this->KodeStatus->EditValue = ew_RemoveHtml($_GET["KodeStatus"]); } }
Perhatikan kode tersebut. Kita menggunakan property EditValue untuk menerima nilai dari method GET yang diambil dari URL di atas tadi. Pastikan juga kita menggunakan fungsi ew_RemoveHtml untuk menghapus semua tag HTML jika ada Pengguna yang nakal dan mencoba-coba menyisipkan tag HTML pada field KodeStatus tersebut.
Mungkin Anda bertanya, lalu bagaimana jika seandainya field yang akan otomatis terisi itu menggunakan control Combobox? Tenang, untuk field yang menggunakan Select Dropdown atau Combobox, maka Anda cukup mengganti kode di atas menjadi seperti ini:
// Page Render event function Page_Render() { //echo "Page Render"; if (isset($_GET["KodeStatus"])) { $this->KodeStatus->CurrentValue = ew_RemoveHtml($_GET["KodeStatus"]); } }
Perhatikanlah bahwa control Combobox tidak memiliki property EditValue, tapi menggunakan property CurrentValue untuk menampung data asli dari Combobox tersebut.
Betapa mudahnya bukan? PHPMaker, gitu lho! 😀
Namun jika ada kondisi yg membuat return FALSE pada saat insert, nilainya bisa hilang.. sehingga salah satu cara saya menggunakan session…
Betul. Anda dapat menampung nilai awal di server event Page_Render tadi ke dalam session variable, lalu ambil kembali nilai dari session variabel tersebut jika terjadi kondisi return FALSE saat insert data oleh user.