Script PHP untuk Edit Data dengan Komponen RadioButton pada Form

Sharing is caring!

Tutorial kali ini masih terkait dengan proses editing data melalui form yang langsung terintegrasi dengan database MySQL. Masalah yang diangkat pada tutorial ini adalah bagaimana membuat script PHP untuk mengedit data melalui form menggunakan komponen RadioButton.

Seperti yang kita tahu bahwa komponen RadioButton digunakan untuk memilih salah satu dari beberapa pilihan yang ada. Nah… yang jadi pertanyaan, bagaimana cara mengimplementasikannya dalam aplikasi edit data dengan form. So… hal ini akan dibahas tuntas pada tutorial kali ini.

Untuk studi kasus, kita mengambil contoh data mahasiswa yang terdiri dari NIM, NAMA MHS dan JENIS KELAMIN. Komponen RadioButton akan digunakan untuk mengubah JENIS KELAMIN ini.

Berikut ini adalah struktur tabel yang digunakan pada contoh ini

CREATE TABLE mhs (
  nim varchar(10),
  namaMhs varchar(30),
  jnsKelamin varchar(20),
  PRIMARY KEY (nim)
)

dengan sampel data sbb:

INSERT INTO mhs VALUES ('M0197001', 'ROSIHAN ARI YUANA', 'Pria');
INSERT INTO mhs VALUES ('M0197002', 'DWI AMALIA FITRIANI', 'Wanita');
INSERT INTO mhs VALUES ('M0197003', 'FAZA FAUZAN KH.', 'Pria');
INSERT INTO mhs VALUES ('M0197004', 'NADA HASANAH', 'Wanita');
INSERT INTO mhs VALUES ('M0197005', 'MUH. AHSANI TAQWIM', 'Pria');

Sebelum kita lanjutkan tutorial ini, ada baiknya Anda lihat terlebih dahulu preview dari hasil script yang akan kita buat.

[swf w=364 h=334]http://butikamalia.com/data/edit3.swf[/swf]

Apabila kita perhatikan pada form proses edit, khususnya pada JENIS KELAMIN, maka RadioButton akan melakukan CHECKED sesuai dengan data. Sebagai contoh, misalkan kita akan mengedit mahasiswa bernama Rosihan Ari yang berjenis kelamin PRIA, maka begitu link EDIT diklik, akan muncul form edit dengan RadioButton langsung men-CHECKED pada PRIA.

Bagaimana membuat hal seperti tersebut di atas? Perhatikan script PHP berikut ini… dan ingat… jangan hanya asal copy and paste lalu jadi… tapi perhatikan komentar-komentarnya, karena komentar tersebut akan membantu Anda untuk mempelajari alur script.

<?php

// koneksi ke mysql

mysql_connect("namahost", "dbuser", "dbpass");
mysql_select_db("dbname");

// mendapatkan nilai dari parameter 'op' dari link

$op = $_GET&#91;'op'&#93;;

// bagian untuk proses edit

if ($op == "edit")
{
   // membaca nilai dari parameter 'nim' dari link   

   $nim = $_GET&#91;'nim'&#93;;

   // query untuk menampilkan data mahasiswa dengan
   // nim tertentu yang akan diedit via form

   $query = "SELECT * FROM mhs WHERE nim = '$nim'";
   $hasil = mysql_query($query);
   $data  = mysql_fetch_array($hasil);

   // setting untuk radio button jenis kelamin
   // jika jenis kelamin pria, maka radiobutton pria dicek

   if ($data&#91;'jnsKelamin'&#93; == "Pria")
   {
       $option1 = "<input type=\"radio\" name=\"sex\"
                   value=\"Pria\" checked>";
       $option2 = "<input type=\"radio\" name=\"sex\"
                   value=\"Wanita\">";
   }
   // jika jenis kelamin wanita, maka radiobutton wanita
   // dicek
   else if ($data['jnsKelamin'] == "Wanita")
        {
           $option1 = "<input type=\"radio\" name=\"sex\"
                       value=\"Pria\">";
           $option2 = "<input type=\"radio\" name=\"sex\"
                       value=\"Wanita\" checked>";
        }

   // menampilkan data hasil query pada form edit

   echo "<form method=\"post\" action=\"".$_SERVER&#91;'PHP_SELF'&#93;.
        "?op=update\">";
   echo "<table border=\"1\">";

   // menampilkan komponen edit data berisi nim

   echo "<tr>
         <td>NIM</td>
		 <td><input type=\"text\" name=\"nim\"
                     value=\"".$data&#91;'nim'&#93;."\"></td>
		 </tr>";

   // menampilkan komponen edit data berisi nama mhs 	 

   echo "<tr>
         <td>Nama Mahasiswa</td>
		 <td>
            <input type=\"text\" name=\"namaMhs\"
            value=\"".$data&#91;'namaMhs'&#93;."\">
		 </td>
		 </tr>";

   // menampilkan radiobutton edit untuk jenis kelamin

   echo "<tr>
         <td>Jenis Kelamin</td>
		 <td>Pria ".$option1." Wanita ".$option2."</td>
		 </tr>";
   echo "</table>";

   // komponen hidden berisi nim lama yang akan digunakan
   // untuk kriteria dalam query update

   echo "<input type=\"hidden\" name=\"nimLama\"
         value=\"".$data&#91;'nim'&#93;."\">";

   // menampilkan tombol submit

   echo "<input type=\"submit\" name=\"submit\"
         value=\"Simpan Perubahan\">";
   echo "</form>";
}
// proses update data setelah data diedit
else if ($op == "update")
     {
	// membaca nim dari form edit

        $nim = $_POST['nim'];

        // membaca nama mahasiswa dari form edit

        $namaMhs = $_POST['namaMhs'];

	// membaca nim lama mhs dari form edit

        $nimLama = $_POST['nimLama'];

	// membaca jenis kelamin mhs dari form edit

	$sex = $_POST['sex'];

	// query update data

        $query = "UPDATE mhs
                  SET nim = '$nim', namaMhs = '$namaMhs',
		      jnsKelamin = '$sex'
                  WHERE nim = '$nimLama'";
        $hasil = mysql_query($query);

	// menampilkan status update

        if ($hasil) echo "<p>Proses Update Sukses</p>";
        else echo "<p>Proses Update Gagal</p>";
     }

?>

<!--- header tabel -->

<table border="1">
<tr>
    <th>No</th>
    <th>NIM</th>
    <th>Nama Mahasiswa</th>
	<th>Jenis Kelamin</th>
    <th>Action</th>
</tr>

<?php

// nilai awal untuk no urut data dalam tabel

$no = 1;

// query untuk menampilkan semua data mahasiswa

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   echo "<tr>";
   // menampilkan no. urut data
   echo "<td>".$no."</td>";
   // menampilkan nim mhs
   echo "<td>".$data['nim']."</td>";
   // menampilkan nama mahasiswa
   echo "<td>".$data['namaMhs']."</td>";
   // menampilkan jenis kelamin mhs
   echo "<td>".$data['jnsKelamin']."</td>";
   // menampilkan link untuk proses edit
   echo "<td>
           <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;.
               "?op=edit&nim=".$data&#91;'nim'&#93;."\">
		     Edit
           </a>
        </td>";
   echo "</tr>";
   // increment untuk no. urut
   $no++;
}

?>

</table>

Bagaimana, mudah bukan membuatnya? Ada pertanyaan dan ide terkait dengan tutorial ini, silakan share di bagian komentar di bawah ini.

Tinggalkan Komentar