Tentang Letak Script Pengolah Form

Sharing is caring!

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&#91;'PHP_SELF'&#93;; ?>">
   <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&#91;'bil1'&#93;;
   $bil2 = $_POST&#91;'bil2'&#93;;
   $hasil = $bil1 + $bil2;
   echo "Hasil penjumlahannya adalah ".$hasil;
?>

<form method="post" action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;; ?>">
   <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&#91;'submit'&#93;)
{
   $bil1 = $_POST&#91;'bil1'&#93;;
   $bil2 = $_POST&#91;'bil2'&#93;;
   $hasil = $bil1 + $bil2;
   echo "Hasil penjumlahannya adalah ".$hasil;
}
else
{
?>

<form method="post" action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;; ?>">
   <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&#91;'PHP_SELF'&#93;; ?>?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&#91;'aksi'&#93; == "proses")
{
   $bil1 = $_POST&#91;'bil1'&#93;;
   $bil2 = $_POST&#91;'bil2'&#93;;
   $hasil = $bil1 + $bil2;
   echo "Hasil penjumlahannya adalah ".$hasil;
}
else
{
?>
<form method="post" action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;; ?>?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&#91;'PHP_SELF'&#93;?>" pada formnya
}

OK… mudah-mudahan postingan ini bermanfaat buat Anda yang ingin memperdalam pemrograman PHP. Nantikan postingan saya berikutnya ya… 🙂

Tinggalkan Komentar