Mau kaos (T-shirt) Wordpress keren? (Selengkapnya)
Dapatkan Script SMS Gateway PHP + MySQL

Seperti: software pengirim SMS massal, SMS survei, SMS polling, SMS quick count, SMS dakwah, Web2SMS dan masih banyak lagi... semuanya berbasis PHP & MySQL
[Info Lengkap...]



Tentang Letak Script Pengolah Form


February 4th, 2009 | by rosihanari | Cetak Artikel Ini 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


Share this article on:

Kata kunci: form - PHP - script - submit -


Ada 15 komentar dalam artikel ini.

  1. mel says:

    1st read the profile….wow so amazing..beside a lecturer also a programmer…that was my profession dream…..

  2. aqua says:

    Pak,saya coba di joomla! kok tidak bisa yach?
    Setelah tombol diklik kok malah balik ke halaman depan(frontpage)?
    thanks

  3. Samsir Rais says:

    Assalamualaikum,
    Saran nih pak, gimana kalau artikel2 bapak dibuat dalam bentuk pdf…
    Trims Pak….

  4. rosihanari says:

    to Samsir Rais: terimakasih atas sarannya, saya coba pertimbangkan usulan ini.

  5. rais says:

    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…

  6. rosihanari says:

    to rais: wah saya kok bingung memahami pertanyaan anda :-) bisa dijelaskan dengan bahasa yang lebih sederhana?

  7. Imam Zatnika W says:

    Wah..wah.. Ilmu yang mahal tetapi dibagikan gratis ;-) Terima kasih banyak Pak Ari.. Saya langsung comot scriptnya ;-) :-D

  8. 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

  9. rosihanari says:

    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.

  10. Nugraha says:

    thanks pak…
    baca ini saya jadi ngerti.

    :D



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
Untuk membuktikan bahwa komentar Anda bukan spam, tulis kata yang muncul dalam gambar di bawah ini. Bila Anda tidak bisa membaca kata dalam gambar, klik pada gambar tersebut untuk mendengarkan suara dari kata tersebut
Click to hear an audio file of the anti-spam word