TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP Dasar | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress



Slot iklan tersedia, pasang iklan di atas

Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP

Tentang Letak Script Pengolah Form


February 4th, 2009 | by rosihanari | Cetak Artikel Cetak Artikel

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… :-)


Baca Juga Artikel Terkait
Beberapa Tombol Submit dalam Satu Form
Mengatur Digit Desimal Bilangan Real di PHP
Script PHP untuk Mengedit Data Via Form
Script PHP untuk Mencegah Submit Form Berulang Kali
Pemrosesan Form dengan Komponen Combo Box



Slot iklan tersedia, pasang iklan di atas


Kata kunci: form - PHP - script - submit -


Ada 24 komentar dalam artikel ini.



  1. beyond says:

    pada contoh yang ke 1, supaya ketika submit bil 1 dan bil 2 tidak ikut ke refresh, bagaimana cara ? thank Pak

  2. budi says:

    mksih ya pak…sy bru pengen belajar php nieh (pemula) berkat tutorial pak ari sy jd ngerti dikit tentang php…mks ya..
    penegn nanya kalau PHP buat ngolah komentar atau data probadi misalnya (login)…berarti PHPnya miripan yah ma PHP d atas ??
    m’f prtanyaanya banyak….

    • rosihanari says:

      @budi: iya mas Budi.. konsepnya mirip dengan di atas. Script proses bisa diletakkan dalam script yang sama dengan form atau beda file.. terserah kita

  3. wawan says:

    pak
    klo nampilin hasil jumlah bilangan di form text juga script nya gmn ya,, newbi nich

  4. andre says:

    gan kalau cara nampilin jumlah yang diambil dari database tapi ndak pake tombol submit (langsung otomatis jumlah ) gimana caranya ya ?

    maaf newbie.. thanks

  5. margono says:

    pengen belajar,tp gak tau dimulai darimana…??
    gmn solusinya pak??

  6. alfat says:

    maf saya mau tanya..
    misalkan saya ingin mengmbil data2nya dari database yg saya punya dan menjumlahakannya…
    itu gmn ya,ada script tambahan lagi ga,atau mengkoneksikannya gimana???
    tolong bantuan n pencerahannya ya. :)

  7. Nina Suhari says:

    tutorial yang ini bermanfaat banget pak. kemaren sudah coba untuk 1form dan 1processing dijadikan dalam 1file. Nah,kemaren saya mencoba mengembangkannya menjadi 2form dan 2processing yang beruntun dalam 1file dengan logika form1 akan mengirim data ke processing1 yang didalamnya juga terdapat form2 (untuk keperluan konfirmasi), berhasil tampil sampai form2 ini tapi form2 gak tersambung dengan processing2. ketika tombol di form2 di klik, justru kembali ke form1 (bagian awal). Mohon pencerahannya pak, makasi :)

  8. Agung says:

    Pak, saya coba pakai kode begini: action=?proses=1 juga bisa tanpa harus pakai $_SERVER['PHP_SELF'] :)