Passing Variabel
Mungkin sekarang udah saat yang tepat untuk bahas materi tentang passing variabel. Mungkin dan saya yakin pasti Anda sudah mengenal apa yang dinamakan dengan form (dalam bahasan HTML), begitu pula dengan metode pengiriman datanya. Ya, benar... Dalam tag <form>
ada atribut yang bernama method dan action, dan yang akan dibahas di sini adalah mengenai methodnya itu.
Atribut method hanya bisa diisi dengan 2 nilai, yaitu post atau get. Jika diisi dengan post, maka data akan dikirim sebagai sebuah HTTP post transaction. Jika diisi dengan get, maka data akan dikirim sebagai variabel variabel URL (Query String). Contoh:
<!-- contoh form 1 (dengan GET) -->
<form method="get" action="cari.php">
<input type="text" name="q" />
<input type="submit" value="Kirim" />
</form>
<!-- contoh form 2 (dengan POST) -->
<form method="post" action="proses.php">
<input type="text" name="nama" /><br>
<input type="text" name="usia" /><br>
<input type="submit" value="Kirim" />
</form>
Dari contoh di atas, Form pertama akan mengirim data ke cari.php menggunakan method get, dan form kedua akan mengirim data ke proses.php dengan method post. Dalam memproses sebuah form, yang perlu diketahui adalah di PHP ada yang disebut dengan superglobals variables. Superglobals variables adalah variabel standar yang tersedia di seluruh ruang lingkup kode php bersangkutan. Superglobals variables yang berperan saat memproses form adalah $_POST
, $_GET
, dan $_FILES
. Ketiga variabel ini akan diisi dengan data yang diterima/dikirim dari/oleh form html.
Telah disebutkan sebelumnya bahwa sebuah form bisa menggunakan 2 metode pengiriman data. Jika menggunakan post, maka data yang diterima dari form ini akan disimpan ke dalam variable $_POST
. Jika dikirim menggunakan metode get, maka data yang diterima akan disimpan ke dalam varibel $_GET
. Sedangkan variabel $_FILES
berfungsi untuk menyimpan informasi file file yang diupload.
Hal ini dapat diilustrasikan seperti berikut: pada saat tombol submit ditekan, data akan dikirim ke server dan diproses oleh php. PHP akan menyimpan data yang diterima (yang telah diproses) ke dalam variabel $_POST
(karena data dikirim dengan method post). Selanjutnya, adalah PHP akan memproses data yang diterima", yang telah ditempatkan di variabel $_POST
oleh PHP tadi.
NB: perlu diingat bahwa sebuh input form HTML yang akan diproses oleh PHP harus diberi nama dan tipenya terlebih dahulu agar PHP bisa memprosesnya (diambil nilainya).
Mari kita lihat dengan contoh script berikut. Buatlah dua buah file misalnya file pertama kita beri nama input.html dan yang kedua proses.php
File input.html berisi source code seperti berikut:
<form method="post" action="proses.php">
Nama:
<input type="text" name="nama" /><br>
Jenis Kelamin:
<input type="radio" name="kelamin" value="pria">Pria <input type="radio" name="kelamin" value="wanita">Wanita<br>
Status:
<select name="status">
<option value="Lajang">Lajang</option>
<option value="Menikah">Menikah</option>
</select><br>
Alamat:
<textarea name="alamat" cols=2 rows=3></textarea>
<input type="submit" value="Kirim"/>
</form>
Lihat demo dan source codenya: DEMO | Source Code
Adapun file proses.php yang akan memproses data berisi code seperti ini:
<?php
echo "Nama: ".$_POST['nama'];
echo "<br/>Jenis Kelamin: ".$_POST['kelamin'];
echo "<br/>Status: ".$_POST['status'];
echo '<br/>Alamat: '.$_POST['alamat'];
?>
Lihat demo dan source codenya: DEMO | Source Code
Bila kita membukanya di browser maka Anda akan melihat tampilan seperti ini
Lalu kita isi form tersebut dengan data berikut: nama: Ari Julianto, jenis kelamin dipilih Pria, status pilih Lajang dan alamat diisi dengan Abdi Negara Rancaekek Bandung. Dan setelah tombol submit di klik atau ditekan
Jenis Kelamin: Pria
Status: Lajang
Alamat: Abdi Negara Rancaekek Bandung
Anda sudah melihat hasilnya???? tampil kan data-data yang tadi di isi di halaman input.html? Yups. Sekarang coba lihat addressbar browser Anda, apa yang berubah dibanding sebelum mengklik tombol Kirim? Yang berubah tidak banyak, hanya berubah nama filenya saja dari input.html jadi proses.php. Sekarang coba ganti method="post"
menjadi method="get"
di file input.html! Lalu isi kemudian lakukan yang sama dengan sebelumnya dan perhatikan juga apa yang terjadi dengan addressbar browser Anda.
Lihat demo dan source codenya: DEMO | Source Code
Input form yang menggunakan method="GET"
, input user yang dikirim dapat langsung dibaca oleh user karena data dikirim sebagai sebuah HTTP GET atau lebih dikenal dengan sebutan QUERY STRING