Tentang Letak Script Pengolah Form
February 4th, 2009 | by rosihanari |
Cetak Artikel Ini
Misalkan Anda memiliki sebuah form untuk entri input. Trus… input tersebut akan Anda proses dimana? Apakah harus di script yang berbeda dengan formnya? Biasanya memang script pengolah input ini diletakkan tidak satu tempat dengan form inputnya. Namun… ini tidak merupakan satu-satunya cara untuk meletakkan script pengolah form. Script pengolah form ini dapat Anda letakkan dalam script yang sama dengan formnya.
Bagaimana cara melakukannya? Simak artikel berikut ini lebih lanjut.
OK… contoh sederhana misalkan kita akan membuat kalkulator sederhana untuk menghitung penjumlahan dua buah bilangan dengan script PHP.
Berikut ini adalah kode HTML untuk membuat form input bilangannya.
<form method="post" action="...">
<table>
<tr><td>Bil Pertama</td><td>:</td><td><input type="text" name="bil1"></td></tr>
<tr><td>Bil Kedua</td><td>:</td><td><input type="text" name="bil2"></td></tr>
<tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>Nah.. biasanya kita mengarahkan script PHP pengolah form di atas ke script yang berbeda dengan script formnya. Sekarang akan kita coba untuk mengarahkan form tersebut ke script yang jadi satu dengan formnya atau ke dirinya sendiri.
Untuk mengarahkan submit form ke script itu sendiri, gunakan perintah $_SERVER['PHP_SELF'].
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table>
<tr><td>Bil Pertama</td><td>:</td><td><input type="text" name="bil1"></td></tr>
<tr><td>Bil Kedua</td><td>:</td><td><input type="text" name="bil2"></td></tr>
<tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>Kemudian, dimanakah kita letakkan script pengolah scriptnya? Ya… ini terserah kita. Bisa kita letakkan di atas form atau di bawah form. Contoh berikut ini adalah menampilkan hasil penjumlahan di atas form.
<?php $bil1 = $_POST['bil1']; $bil2 = $_POST['bil2']; $hasil = $bil1 + $bil2; echo "Hasil penjumlahannya adalah ".$hasil; ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <table> <tr><td>Bil Pertama</td><td>:</td><td><input type="text" name="bil1"></td></tr> <tr><td>Bil Kedua</td><td>:</td><td><input type="text" name="bil2"></td></tr> <tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr> </table> </form>
Lalu.. bagaimana seandainya kita ingin bahwa yang ditampilkan hanya hasil penjumlahannya saja dan formnya tidak muncul, akan tetapi scriptnya jadi satu dalam file yang sama? Tentu ini bisa dilakukan. Konsepnya adalah kita menggunakan statement IF. IF ini kita gunakan untuk mengecek apakah tombol submit ini diklik atau tidak. Jika diklik maka tampilkan hasilnya. Sedangkan bila tidak diklik maka tampilkan formnya.
Untuk mengecek apakah tombol submit diklik atau tidak, gunakan perintah
if ($_POST['submit']) { // tampilkan hasil penjumlahan } else { // tampilkan form nya }
Sehingga script di atas menjadi seperti di bawah ini
<?php if ($_POST['submit']) { $bil1 = $_POST['bil1']; $bil2 = $_POST['bil2']; $hasil = $bil1 + $bil2; echo "Hasil penjumlahannya adalah ".$hasil; } else { ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <table> <tr><td>Bil Pertama</td><td>:</td><td><input type="text" name="bil1"></td></tr> <tr><td>Bil Kedua</td><td>:</td><td><input type="text" name="bil2"></td></tr> <tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr> </table> </form> <?php } ?>
Selain cara yang kedua diatas, kita juga bisa mengarahkan input formnya ke script itu sendiri tapi menggunakan parameter. Berikut ini contohnya:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?aksi=proses">
<table>
<tr><td>Bil Pertama</td><td>:</td><td><input type="text" name="bil1"></td></tr>
<tr><td>Bil Kedua</td><td>:</td><td><input type="text" name="bil2"></td></tr>
<tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</table>
</form>Pada form di atas, data input diarahkan ke script dia sendiri tapi dengan parameter ?action=proses. Untuk cara ini, kita tidak usah mendeteksi klik submitnya seperti pada contoh kedua di atas. Trus… bagaimana cara menghandlenya? Caranya hampir sama dengan mendeteksi klik tombol submit, namun dalam hal ini kita gunakan logika seperti ini:
if ($_GET['aksi'] == "proses") { // tampilkan hasil penjumlahan } else { // tampilkan form input }
Mengapa menggunakan $_GET['aksi']? Ya… karena dalam action terdapat parameter ‘aksi’. Parameter ini juga merupakan submit yang menggunakan method GET. Sedangkan ‘proses’ merupakan value dari parameter ‘aksi’ ini. Sehingga untuk mendeteksi apakah input sudah disubmit adalah hanya mengecek nilai dari parameter ‘aksi’ ini. Jika nilai parameter ‘aksi’ = ‘proses’ maka tampilkan hasil penjumlahan. Bila tidak, maka tampilkan formnya.
Dengan demikian script cara ketiga untuk mengolah input menggunakan action berbentuk parameter adalah sbb:
<?php if ($_GET['aksi'] == "proses") { $bil1 = $_POST['bil1']; $bil2 = $_POST['bil2']; $hasil = $bil1 + $bil2; echo "Hasil penjumlahannya adalah ".$hasil; } else { ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?aksi=proses"> <table> <tr><td>Bil Pertama</td><td>:</td><td><input type="text" name="bil1"></td></tr> <tr><td>Bil Kedua</td><td>:</td><td><input type="text" name="bil2"></td></tr> <tr><td></td><td></td><td><input type="submit" name="submit" value="Submit"></td></tr> </table> </form> <?php } ?>
So… enaknya mau meletakkan script pengolah form ini dimana? di dalam script yang sama dengan formnya atau di script yang lain? It’s up to you.. Semuanya terserah Anda, karena Anda sang programmer.
Bagaimana bila tombol submitnya lebih dari satu, seperti yang pernah saya bahas di artikel Beberapa Tombol Submit dalam Satu Form? Bagaimana cara membuatnya bila input diarahkan ke script yang sama dengan formnya? Ya… caranya hampir sama, nanti Anda gunakan logika seperti ini
if ($_POST['submit1'])
{
// action apabila tombol submit 1 diklik
}
else if ($_POST['submit2'])
{
// action apabila tombol submit 2 diklik
}
else if ($_POST['submit3'])
{
// action apabila tombol submit 3 diklik
}
.
.
.
else
{
// action bila tidak ada tombol yang diklik
// menampilkan form inputnya
// jangan lupa gunakan action="<?php echo $_SERVER['PHP_SELF']?>" pada formnya
}OK… mudah-mudahan postingan ini bermanfaat buat Anda yang ingin memperdalam pemrograman PHP. Nantikan postingan saya berikutnya ya…
Beberapa artikel terkait
- Beberapa Tombol Submit dalam Satu Form
- Tips Membuat Script PHP Pengolah Password dengan MD5
- Script PHP untuk Mencegah Submit Form Berulang Kali
- Membuat Form Dinamis dan Pemrosesannya (Sebuah Studi Kasus)
- Pemrosesan Form dengan Komponen Combo Box
- Script PHP untuk Mengedit Data Via Form
- Script PHP untuk Edit Data dengan Komponen RadioButton pada Form
- Beberapa Function Pengolah String di PHP (Bag. 1)
- Tentang Function str_replace()
- Teknik Submit Data Melalui Multi Form
Share this article on:
Kata kunci: form - PHP - script - submit -
Mau kaos (T-shirt) Wordpress keren? (
Rosihan Ari adalah seorang programmer, penulis buku, trainer, peneliti dan berusaha menjadi seorang blogger sejati dengan memberikan yang terbaik buat negeri ini. Berfokus pada computer programming serta computer aided learning for mathematics, ia ingin berbagi ilmu yang dimilikinya. 


1st read the profile….wow so amazing..beside a lecturer also a programmer…that was my profession dream…..
Pak,saya coba di joomla! kok tidak bisa yach?
Setelah tombol diklik kok malah balik ke halaman depan(frontpage)?
thanks
Assalamualaikum,
Saran nih pak, gimana kalau artikel2 bapak dibuat dalam bentuk pdf…
Trims Pak….
to Samsir Rais: terimakasih atas sarannya, saya coba pertimbangkan usulan ini.
pak guru…saya mau tanya masih tentang materi ini…
untuk proses nya menggunakan input
tapi…untuk menghilangkan form input nya itu lhoh kalau sudah memproses nya
</form
jika sudah sukses maka hasil nya di hilangkan..
apakah ada bantuan dengan script yang lain
sebab kalau di refresh masih ada…
to rais: wah saya kok bingung memahami pertanyaan anda
bisa dijelaskan dengan bahasa yang lebih sederhana?
Wah..wah.. Ilmu yang mahal tetapi dibagikan gratis
Terima kasih banyak Pak Ari.. Saya langsung comot scriptnya
Assaalamu’alaykum..
Pak Ari saya mau tanya, ada tidak tools buat ngeliat php scripts dan javascripts di static HTML web orang (istilahnya contek source code ; HTML + PHP + JS) ?? Trima kasih atas bantuannya..
Wassalaamu’alaykum..
Postingan terakhir si Imam Zatnika W di blognya: TEKNIK SEO DYNAMIC TITLE
to imam zatnika: kalau melihat source HTML dan JS bisa mas. Tapi kalo PHP tidak bisa, karena PHP adalah server side perogramming. Itulah yang membedakan antara client side programming (JS) dengan server side programming. Jadi dalam hal ini user client (pengunjung web) itu hanya bisa menerima source hasil olahan PHP yang dilakukan oleh server. Hasil olahan tersebut berupa HTML atau JS saja.
thanks pak…
baca ini saya jadi ngerti.