Biasanya, Pengguna Akhir aplikasi web akan merasa lebih nyaman jika sistem otomatis mengarahkan ke posisi record pada halaman List setelah data berhasil diubah. Dengan cara ini, maka data yang baru saja diubah dapat dipastikan sudah sesuai dengan kebutuhan, dan si Pengguna Akhir dapat mengubah data lainnya (jika perlu) dari halaman List tersebut.
Di sinilah asyiknya jika menggunakan PHPMaker. Kita bisa menerapkan hal ini melalui 2 server event saja, yaitu: Row_Rendered dan Row_Updated. Kode PHP yang kita tulis pun hanya sedikit, masing-masing dua baris.
Katakanlah dari project demo2024 yang bisa kalian download dan coba sendiri di localhost, kita ingin saat Pengguna Akhir mengubah data di table orders, maka sistem langsung mengarahkan ke halaman List dan lompat ke posisi record yang baru saja diubah.
Pertama, cukup tambahkan dua baris kode PHP di server event Row_Rendered:
if (CurrentPageID() == "list")
$this->OrderID->ViewValue = "<a name='order_" . $this->OrderID->CurrentValue . "'></a>" . $this->OrderID->ViewValue;
Arti dari kode ini, saat setiap satu baris record di-render oleh sistem di halaman List, maka kita dapat menambahkan tag a name untuk menandai secara unik setiap record, sehingga nantinya bisa kita panggil berdasarkan tag tadi, dengan cara sistem me-redirect ke posisi tersebut.
Karena harus unik, maka kita bisa menggunakan nilai dari field OrderID. Mengapa? Karena kebetulan primary key untuk table orders tersebut hanya satu field saja, yaitu OrderID. Beda halnya jika table tersebut menggunakan primary key lebih dari satu field, maka nilai dari field-field tersebut harus disertakan.
Selanjutnya, kita menambahkan dua baris kode PHP berikut di server event Row_Updated:
$this->setSuccessMessage("Successfully update for OrderID = " . $rsold["OrderID"]);
$this->terminate("orderslist#order_" . $rsold["OrderID"]);
Arti dari kode ini, sistem akan menampilkan pesan berhasil meng-update record untuk OrderID yang nilainya kita ambil dari $rsold, dan setelah itu, sistem akan mengarahkan (me-redirect) ke posisi record yang diubah tadi pada halaman List dari table orders, cukup dengan memanggil method terminate.
Selebihnya sudah ditangani oleh PHPMaker. Kita tidak perlu menulis kode yang panjangnya sampai berpuluh-puluh baris atau bahkan beratus-ratus baris untuk menampilkan data di halaman List.
Betapa cepat dan mudahnya jika membangun aplikasi web dengan PHPMaker.
Tinggalkan Balasan