Tuesday, December 27, 2016

Bab 4. PHP/MySQL Untuk Programer


Elemen Form






Form Anda yang Pertama

Seperti orang bijak pernah berkata, “Setiap perjalanan diawali dengan satu langkah kecil”. Untuk mengawali perjalanan ini, Anda perlu fokus pada setiap form. Form ini hanya memuat satu bidang teks dan sebuah tombol submit. Skript yang memproses hanya akan menampilkan nilai yang dimasukkan pada bidang teks.

Contoh
Sebutkan nama saya
1.     Ciptakanlah form1.html dengan editor teks Anda.
2.    Masukkan kode berikut:

<html>
  <head>
    <title> Sebut Nama Saya </title>
  </head>
  <body>
    <form action="prosesform1.php" method="post">
      <table>
        <tr>
          <td> Nama </td>
          <td> <input type="text" name="nama" /> </td>
        </tr> <tr>
          <td colspan="2" style="text-align: center;">
            <input type="submit" name="submit" value="Submit" /> </td>
        </tr>
      </table>
    </form>
  </body>
</html>

3.    Ciptakanlah sebuah file prosesform1.php, dan masukkan kode berikut:

<html>
  <head>
    <title> Sebut Nama Saya </title>
  </head>
  <body>
<?php
echo '<h1> Hallo ' . $_POST['nama'] . '! </h1>';
?>
    <pre>
<strong> DEBUG: </strong>
<?php
print_r($_POST);
?>
    </pre>
  </body>
</html>

4.    Bukalah form1.html dengan browser Anda.
5.    Ketikkan nama Anda dalam kotak teks nama (seperti ditampilkan pada gambar berikut), dan klik tombol Submit.






Elemen Form
Elemen HTML kedua yang dicakup di sini adalah input. Elemen ini merupakan basis bagi hampir semua form dan dapat dipakai dalam pelbagai cara untuk mengumpulkan berbagai informasi. Pada kasus ini, Anda menggunakan dua tipe input: tipe text dan tipe submit.

Berikut merupakan tipe input text:

<input type=”text” name=”nama” />

Tipe input text merupakan kotak teks satu-baris standar. Sama seperti semua kontrol form, tipe ini memerlukan nama sehingga skript pemroses dapat mengakses kontennya menggunakan sintaks berikut:

<?php
echo $_POST[‘nama’]; // akan menampilkan apa yang diketikkan
?>

Dan ini merupakan tipe input submit:

<input type=”submit” name=”submit” value=”Submit” />

Seperti yang diindikasikan oleh namanya, elemen submit menampilkan sebuah tombol yang menyebabkan browser untuk menyerahkan form ketika tombol tersebut ditekan. Teks tombol ditetapkan melalui atribut value. Sama seperti untuk kontrol text input, kontrol form ini memerlukan sebuah nama untuk pemrosesan.
Pemrosesan Form
Pada skript tersebut, Anda pasti memperhatikan beberapa fungsi baru dan beberapa sintaks baru, dan Anda mungkin tertarik untuk mengetahuinya.

Anda telah mengetahui perintah echo, jadi Anda perlu pula mengetahui tentang $_POST[‘nama’].

Array global $_POST memuat semua data form yang diserahkan dengan metode POST. Indeks array dari bidang adalah namanya. Sebentar lagi, Anda akan melihat bagaimana memeriksa isi dari array $_POST menggunakan fungsi print_r().

<?php
echo ‘<h1> Hallo ‘ . $_POST[‘nama’] . ‘! </h1>’;?>

Pada contoh ini, $_POST[‘nama’] akan menampilkan apa yang Anda masukkan pada bidang nama.

Anda mungkin bertanya-tanya apa yang dilakukan oleh print_r($_POST). Fungsi ini ‘menupahkan’ isi dari array global $_POST ke keluaran. Array $_POST, sama seperti semua array, memiliki indeks yang bersifat case-sensitive.

Menyetir Masukan Pengguna
Form pada contoh ini dipakai untuk mengarahkan pengguna untuk memilih nilai dari himpunan nilai yang Anda sediakan. Pendefinisian himpunan nilai dilakukan melalui penggunaan elemen-elemen HTML, seperti kotak list, tombol radio, dan kotak periksa.

Contoh
Membatasi pilihan
1.     Ciptakanlah sebuah file teks dengan nama form2.html, dan bukalah dalam editor teks Anda:

2.    Masukkan kode berikut:

<html>
  <head>
    <title> Ucapan Selamat </title>
  </head>
  <body>
    <form action="prosesform2.php" method="post">
      <table>
        <tr>
          <td> Nama </td>
          <td><input type="text" name="nama" /></td>
        </tr><tr>
          <td> Selamat </td>
          <td>
            <select name="selamat">
              <option value="Hello"> Hello </option>
              <option value="Hola"> Hola </option>
              <option value="Bonjour"> Bonjour </option>
            </select>
          </td>
        </tr><tr>
          <td></td>
          <td>
            <input type="checkbox" name="debug" checked="checked"/>
            Tampilkan Info Debug
          </td>
        </tr><tr>
          <td colspan="2" style="text-align: center">
            <input type="submit" name="submit" value="Submit" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

3.    Ciptakanlah sebuah file prosesform2.php, dan masukkan kode berikut:

<html>
  <head>
    <title> Ucapan Selamat </title>
  </head>
  <body >
<?php
echo '<h1>' . $_POST['selamat'] . ' ' . $_POST['nama'] . '! </h1>';

if (isset($_POST['debug'])) {
    echo '<pre><strong> DEBUG: </strong>' . "\n";
    print_r($_POST);
    echo '</pre>';
}
?>
  </body>
</html>

4.    Simpan file prosesform2.php.
5.    Jalankan form2.html dari browser Anda untuk menampilkan berikut:




6.    Ketikkan nama Anda dalam kotak teks nama (seperti ditampilkan pada gambar berikut), dan klik tombol Submit.




Satu Form, Pemrosesan Jamak
Contoh
Tombol radio dan kotak list baris-jamak
1.     Ciptakanlah sebuah teks dengan nama form3.php, dan buka dengan editor teks Anda. Kemudian ketikkan kode berikut:

<html>
  <head>
    <title> Tambah/Cari Entri </title>
    <style type="text/css">
    <!--
td {vertical-align: top;}
    -->
    </style>
  </head>
  <body>
    <form action="prosesform3.php" method="post">
      <table>
        <tr>
          <td> Nama </td>
          <td><input type="text" name="nama" /></td>
        </tr><tr>
          <td> Tipe Film </td>
          <td>
            <select name="tipe_film">
              <option value=""> Pilih satu tipe film... </option>
              <option value="Aksi"> Aksi </option>
              <option value="Drama"> Drama </option>
              <option value="Komedi"> Komedi </option>
              <option value="Sci-Fi"> Sci-Fi </option>
              <option value="Perang"> Perang </option>
              <option value="Lainnya"> Lainnya... </option>
            </select>
          </td>
        </tr><tr>
          <td> Tipe Item </td>
          <td>
            <input type="radio" name="tipe" value="film" checked="checked" /> Film <br/>
            <input type="radio" name="tipe" value="aktor" /> Aktor <br/>
            <input type="radio" name="tipe" value="sutradara"/> Sutradara <br/>
          </td>
        </tr><tr>
          <td></td>
          <td><input type="checkbox" name="debug" checked="checked" />
            Tampilkan Info Debug
          </td>
        </tr><tr>
          <td colspan="2" style="text-align: center;">
            <input type="submit" name="submit" value="Cari" />
            <input type="submit" name="submit" value="Tambah" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

2.    Ciptakanlah file lain dengan nama prosesform3.php, dan masukkan kode berikut:

<?php
if ($_POST['tipe'] == 'film' && $_POST['tipe_film'] == '') {
    header('Location: form3.php');
}
?>
<html>
  <head>
    <title> <?php echo $_POST['submit'] . ' ' . $_POST['tipe'] . ': ' . $_POST['nama']; ?></title>
  </head>
  <body>
<?php
if (isset($_POST['debug'])) {
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
}

$nama = ucfirst($_POST['nama']);
if ($_POST['tipe'] == 'film')
{
    $foo = $_POST['tipe_film'] . ' ' . $_POST['tipe'];
} else {
    $foo = $_POST['tipe'];
}

echo '<p> Anda sedang ' . $_POST['submit'];
echo ($_POST['submit'] == 'Cari') ? ' tentang ' : '';
echo 'seorang/sebuah ' . $foo . ' bernama ' . $nama . '</p>';
?>
  </body>
</html>

3.    Bukalah form3.php dengan browser Anda. Form akan ditampilkan sebagai berikut:




4.    Ketikkan Mark Whalberg pada bidang nama. Jika Anda mengklik tombol Cari, maka akan ditampilkan sebagai berikut:




Elemen INPUT Radio
Tombol radio merupakan sebuah elemen sangat sederhana. Secara default, jika tidak ada tombol radio yang dispesifikasi sebagai CHECKED, maka tidak ada pilihan yang dibuat. Ingat selalu bahwa pemilihan nilai default merupakan bagian yang sangat penting dalam pembuatan suatu form. Pengguna seringkali membiarkan nilai-nilai default dalam form, dan pada kasus itu, jika Anda tidak menetapkan nilai default, Anda tidak akan menerima informasi apapun untuk bidang tersebut ketika form disubmit.

<input type="radio" name="tipe" value="film" checked="checked" /> Film <br/>
<input type="radio" name="tipe" value="aktor" /> Aktor <br/>
<input type="radio" name="tipe" value="sutradara"/> Sutradara <br/>

Tombol Submit Jamak
Sama seperti tombol radio, tombol submit memiliki nama sama dengan nama yang berbeda. Dengan mengklik salah satu tombol tersebut, browser akan menyerahkan form. Seperti yang dapat Anda lihat pada blok DEBUG, tombol submit mengirimkan informasinya sendiri ke skript. Dengan membaca nilai ini, skript membolehkan Anda untuk memiliki beberapa tombol submit untuk form yang sama, dan melakukan aksi pemrosesan yang berbeda tergantung dari tombol mana yang ditekan.

<input type="submit" name="submit" value="Cari" />
<input type="submit" name="submit" value="Tambah" />

Dasar Pengujian Masukan
Kode berikut memeriksa apakah tipe item adalah film, dan jika ya, maka ia akan memeriksa apakah pengguna telah memilih sebuah tipe film yang valid. Jika belum, maka pengguna akan diredireksi ke halaman form.

Pengujian tersebut merupakan sebuah perbandingan if yang menggunakan operator && (operator And Boolean). Jika tipe item adalah film dan tipe film tidak ditetapkan, maka Anda kembali ke halaman form. Jika sebaliknya, skript akan berlanjut memproses.

if ($_POST['tipe'] == 'film' && $_POST['tipe_film'] == '') {
    header('Location: form3.php');
}
Fungsi header dipakai untuk mengirim header HTTP. Ini berguna ketika berhubungan dengan pengimplementasian pembatasan akses dan ketika peredireksian pengguna ke skript lain. Pada kasus ini, pengguna diredireksi ke halaman form3.php.

Menghubungkan Form
Contoh
Menggabungkan semuanya
1.     Ciptakanlah sebuah file dengan nama form4.php, dan masukkan kode berikut:

<html>
  <head>
    <title> Form Multiguna </title>
    <style type="text/css">
    <!--
td {vertical-align: top;}
    -->
    </style>
  </head>
  <body>
    <form action="form4a.php" method="post">
      <table>
        <tr>
          <td> Nama </td>
          <td><input type="text" name="nama" /></td>
        </tr><tr>
          <td> Tipe Item </td>
          <td>
            <input type="radio" name="tipe" value="film" checked="checked" /> Film <br/>
            <input type="radio" name="tipe" value="aktor" /> Aktor <br/>
            <input type="radio" name="tipe" value="sutradara"/> Sutradara <br/>
          </td>
        </tr><tr>
            <td> Tipe Film <br/> <small> (if applicable) </small></td>
          <td>
            <select name="tipe_film">
              <option value=""> Pilih satu tipe film... </option>
              <option value="Aksi"> Aksi </option>
              <option value="Drama"> Drama </option>
              <option value="Komedi"> Komedi </option>
              <option value="Sci-Fi"> Sci-Fi </option>
              <option value="Perang"> Perang </option>
              <option value="Lainnya"> Lainnya... </option>
            </select>
          </td>
        </tr><tr>
          <td></td>
          <td><input type="checkbox" name="debug" checked="checked" />
            Tampilkan Info Debug
          </td>
        </tr><tr>
          <td colspan="2" style="text-align: center;">
            <input type="submit" name="submit" value="Cari" />
            <input type="submit" name="submit" value="Tambah" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

2.    Ciptakanlah sebuah file dengan nama form4a.php, dan masukkan kode berikut:

<?php
// Memastikan pengguna memilih sebuah tipe film ketika menambahkan suatu
// film. Jika tidak, maka kirim kembali ke form pertama.
if ($_POST['submit'] == 'Tambah') {
    if ($_POST['tipe'] == 'film' && $_POST['tipe_film'] == '') {
        header('Location: form4.php');
    }
}
?>
<html>
  <head>
    <title> Form Multiguna </title>
    <style type="text/css">
    <!--
td{vertical-align: top;}
    -->
    </style>
  </head>
  <body>
<?php
// Menampilkan sebuah form untuk mengumpulkan informasi jika
// pengguna menambahkan sesuatu
if ($_POST['submit'] == 'Tambah') {
    echo '<h1> Tambah ' . ucfirst($_POST['tipe']) . ' </h1> ';
?>
  <form action="form4b.php" method="post">
    <input type="hidden" name="tipe" value=" <?php echo $_POST['tipe']; ?> "/>
    <table>
      <tr>
        <td> Nama </td>
        <td>
          <?php echo $_POST['nama']; ?>
          <input type="hidden" name="nama" value=" <?php echo $_POST['nama']; ?> "/>
        </td>
      </tr>
<?php
    if ($_POST['tipe'] == 'film') {
?>
    <tr>
      <td> Tipe Film </td>
      <td>
        <?php echo $_POST['tipe_film']; ?>
        <input type="hidden" name="tipe_film" value=" <?php echo $_POST['tipe_film']; ?> "/>
      </td>
    </tr><tr>
      <td> Tahun </td>
      <td><input type="text" name="tahun" /></td>
    </tr><tr>
      <td> Deskripsi Film </td>
<?php
    } else {
      echo ' <tr><td> Biografi </td> ';
    }
?>
      <td><textarea name="extra" rows="5" cols="60"> </textarea></td>
    </tr><tr>
      <td colspan="2" style="text-align: center;">
<?php
if (isset($_POST['debug'])) {
    echo ' <input type="hidden" name="debug" value="on" />';
}
?>
        <input type="submit" name="submit" value="Add" />
      </td>
    </tr>
    </table>
  </form>
<?php
// Pengguna melakukan pencarian terhadap sesuatu
} else if ($_POST['submit'] == 'Cari') {
  echo ' <h1> Cari ' . ucfirst($_POST['tipe']) . ' </h1> ';
  echo ' <p> Cari ' . $_POST['nama'] . '... </p> ';
}
if (isset($_POST['debug'])) {
    echo ' <pre> ';
    print_r($_POST);
    echo ' </pre> ';
}
?>
  </body>
</html>

3.    Ciptakanlah sebuah file lain dengan nama form4b.php, dan masukkan kode berikut:

<html>
  <head>
    <title> Form Multiguna </title>
    <style type="text/css" >
    <!--
td {vertical-align: top;}
    -->
    </style>
  </head>
  <body>
<?php
if ($_POST['tipe'] == 'film') {
    echo ' <h1> Baru: ' . ucfirst($_POST['tipe_film']) . ': ';
} else {
    echo ' <h1> Baru ' . ucfirst($_POST['tipe']) . ': ';
}
echo $_POST['nama'] . ' </h1> ';

echo ' <table> ';
if ($_POST['tipe'] == 'film') {
    echo ' <tr> ';
    echo ' <td> Tahun </td> ';
    echo ' <td> ' . $_POST['tahun'] . ' </td> ';
    echo ' </tr> <tr> ';
    echo ' <td> Deskripsi Film </td> ';
} else {
    echo ' <tr><td> Biografi </td> ';
}
echo ' <td> ' . nl2br($_POST['extra']) . ' </td> ';
echo ' </tr> ';
echo ' </table> ';

if (isset($_POST['debug'])) {
    echo ' <pre> ';
    print_r($_POST);
    echo ' </pre> ';
}
?>
  </body>
</html>

4.    Bukalah form4.php pada browser Anda. Form baru akan ditampilkan sebagai berikut:




5.    Masukkan nama film yang Anda inginkan: Terminator 2 (misalnya).
6.    Klik tombol Tambah, sehingga ditampilkan berikut:



7.    Masukkan tanggal, misalnya (2005).
8.    Pilih Aksi pada daftar tipe film.
9.    Ketikkan sebuah deskripsi singkat, pastikan Anda memasukkan beberapa baris dan menekan kunci ENTER pada tiap baris.
10.Klik tombol Tambah, dan lihat bagaimana informasi ditampilkan.









No comments:

Post a Comment