Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP


Teknik Proses Edit Data Dengan Berbagai Komponen Form


August 5th, 2009 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

Seringkali saya ditanyai oleh rekan-rekan mahasiswa maupun pengunjung setia blog ini tentang bagaimana cara edit data dengan komponen combobox, checkbox, radiobutton dll. Daripada saya menjawabnya satu-persatu, mending saya jadiin satu saja jawabannya melalui artikel ini :-)

Untuk menjawab pertanyaan di atas, di sini saya akan mengimplementasikannya ke dalam sebuah studi kasus yaitu terkait dengan data personal seseorang.

OK.. andaikan kita ingin membuat script untuk pendataan personal seseorang yang terdiri dari: nama, alamat, pekerjaan, jenis kelamin, dan status pernikahan. Dari kebutuhan tersebut, maka kita buat dulu struktur tabel di MySQL sebagai berikut

CREATE TABLE pendataan (
  id int(20) auto_increment,
  nama varchar(30),
  alamat text,
  pekerjaan varchar(30),
  sex varchar(1),
  statusNikah int(11),
  PRIMARY KEY(id)
);

Sebelum kita lanjutkan membuat scriptnya, kita bahas dulu fungsi masing-masing field. Field ‘id’ digunakan untuk menyimpan nomor ID unik setiap orang yang didata. Nomor ini digenerate secara autoincrement. Field ‘nama’, ‘alamat’ saya kira sudah jelas. Untuk field ‘pekerjaan’ ini nanti akan diisi melalui pilihan dari sebuah combo box yang menampilkan beberapa jenis pekerjaan. Oya untuk ‘nama’ nantinya menggunakan textfield atau textbox, sedangkan ‘alamat’ menggunakan textarea. Field ‘sex’ atau jenis kelamin nantinya diisi melalui komponen radiobutton. Nilai field ini berupa ‘L’ (laki-laki) atau ‘P’ (perempuan). Terakhir… field ‘statusNikah’ ini nanti juga akan diisi dengan angka 0 atau 1 (0 = blm menikah, 1 = sudah menikah). Status menikah ini nanti akan diisi melalui sebuah komponen checkbox.

Nah.. andaikan kita memiliki form input seperti di bawah ini:

form.html

<h1>Baca input dari form</h1>

<form method="post" action="insert.php">
<table>
  <tr><td>Nama Anda</td><td>:</td><td><input type="text" name="nama"></td></tr>
  <tr><td>Alamat</td><td>:</td><td><textarea name="alamat" rows="10" cols="20"></textarea></td></tr>
  <tr><td>Jenis Kelamin</td><td>:</td><td><input type="radio" name="sex" value="L">Laki-laki <input type="radio" name="sex" value="P">Perempuan </td></tr>
  <tr>
       <td>Pilih Pekerjaan</td>
       <td>:</td>
       <td>
       <select name="pekerjaan">
         <option value="Petani">Petani</option>
         <option value="Guru">Guru</option>
         <option value="Dokter">Dokter</option>
         <option value="Lain-lain">Lain-lain</option>
       </select>
       </td>
  </tr>
  <tr><td>Status Menikah</td><td>:</td><td><input type="checkbox" name="statusNikah" value="1"> Ya</td></tr>
</table>
<input type="submit" name="submit" value="Submit"><input type="reset" name="reset" value="Hapus">
</form>

Untuk membuat script insertnya ke mysql bisa Anda buat sendiri bukan?

Nah selanjutnya bagaimana dengan script editnya? Pada prinsipnya script edit berisi form, namun bukan blank form namun sudah terisi dengan data yang telah diinputkan. Biasanya form untuk edit ini sama dengan form ketika input data.

Permasalahan utama dalam proses edit adalah cara menampilkan data menggunakan komponen-komponen input pada form. Sebagai contoh misalkan bila ada data dimana jenis kelaminnya laki-laki, maka ketika proses edit via form menunjukkan radiobutton jenis kelaminnya nya telah dipilih laki-laki, begitu pula untuk jenis pekerjaan pada komponen combo boxnya.

Bagaimana cara membuat hal yang demikian? Konsepnya adalah dengan menggunakan IF. Sebagai contoh untuk jenis kelamin. Dalam script edit nantinya akan dicek dulu apakah nilai jenis kelamin yang telah tersimpan laki-laki (L) atau perempuan (P). Jika nilainya ‘L’ maka radiobutton untuk laki-laki akan diberi label ‘checked’ yang artinya terpilih. Sedangkan jika ‘P’ maka label ‘checked’ akan diberikan pada radiobutton perempuan. Hal yang sama juga berlaku untuk komponen yang lain.

Berikut ini script untuk form editnya, yang sama dengan form insertnya.

edit.php

<h1>Edit Data</h1>

<?php

// koneksi ke mysql

mysql_connect("localhost", "root", "rahasiappob");
mysql_select_db("data");

// membaca data id data yang akan diedit (bisa juga menggunakan POST)
$id = $_GET['id'];

// membaca data dalam database sesuai id datanya
$query = "SELECT * FROM pendataan WHERE id = $id";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);

?>

<form method="post" action="update.php">
<table>
  <tr><td>Nama Anda</td><td>:</td><td><input type="text" name="nama" value="<?php echo $data['nama'];?>"></td></tr>
  <tr><td>Alamat</td><td>:</td><td><textarea name="alamat" rows="10" cols="20"><?php echo $data['alamat'];?></textarea></td></tr>
  <tr><td>Jenis Kelamin</td><td>:</td><td>

  <?php
  // proses pengecekan jenis kelamin
  // jika jenis kelamin dalam databasenya 'L', maka label 'checked' diberikan pada radiobutton yang laki-laki
  // demikian pula jika 'P' (perempuan)

  if ($data['sex'] == "L") echo "<input type='radio' name='sex' value='L' checked>Laki-laki <input type='radio' name='sex' value='P'>Perempuan";
  else if ($data['sex'] == "P") echo "<input type='radio' name='sex' value='L'>Laki-laki <input type='radio' name='sex' value='P' checked>Perempuan";
  ?>

   </td></tr>
  <tr>
       <td>Pilih Pekerjaan</td>
       <td>:</td>
       <td>
       <select name="pekerjaan">

           <?php
           // proses menampilkan pilihan jenis pekerjaan.
           // jika pekerjaan = petani, maka pada option 'petani' diberi label 'selected', demikian seterusnya

           if ($data['pekerjaan'] == "Petani") echo "<option value='Petani' selected>Petani</option>";
           else echo "<option value='Petani'>Petani</option>";

           if ($data['pekerjaan'] == "Guru") echo "<option value='Guru' selected>Guru</option>";
           else echo "<option value='Guru'>Guru</option>";

           if ($data['pekerjaan'] == "Dokter") echo "<option value='Dokter' selected>Dokter</option>";
           else echo "<option value='Dokter'>Dokter</option>";

           if ($data['pekerjaan'] == "Lain-lain") echo "<option value='Lain-lain' selected>Lain-lain</option>";
           else echo "<option value='Petani'>Lain-lain</option>";
           ?>

       </select>
       </td>
  </tr>
  <tr><td>Status Menikah</td><td>:</td><td>

      <?php
      // proses untuk menampilkan pilihan status nikah
      // jika status nikahnya sudah menikah (bernilai 1), maka label 'checked' diberikan ke checkbox nya
      // sedangkan jika tidak, maka label 'checked' tidak dituliskan

      if ($data['statusNikah'] == 1) echo "<input type='checkbox' name='statusNikah' value='1' checked> Ya";
      else echo "<input type='checkbox' name='statusNikah' value='1'> Ya";

      ?>
</td>
  </tr>
</table>
<input type="hidden" name="id" value="<?php echo $data['id']; ?>">
<input type="submit" name="submit" value="Submit"><input type="reset" name="reset" value="Hapus">
</form>

Oya.. jangan lupa untuk menambahkan komponen hidden input untuk menyimpan ID datanya. ID ini nanti akan digunakan untuk proses updatenya. Dalam script di atas, hidden inputnya diletakkan sebelum tombol submit.

Mudah bukan? sekali lagi konsepnya adalah dengan menggunakan IF saja, bukan yang lain.

Script di atas sengaja tidak saya berikan secara lengkap untuk proses insert dan updatenya, supaya Anda bisa melengkapinya sendiri. Anda hanya melengkapi script untuk insert dan updatenya saja, serta interface sebelum proses edit via form di atas. Untuk interface sebelum proses edit, tekniknya Anda bisa menampilkan semua data dalam bentuk list tabel, lalu diberikan link edit ke script edit.php di atas berdasarkan parameter ID datanya (menggunakan GET Method) seperti yang ditunjukkan pada video dalam artikel saya yang lain. Cara lain proses editnya melalui proses pencarian terlebih dahulu, misalkan sebelum mengedit data, user diminta memasukkan ID data yang mau diedit, lalu setelah disubmit muncul form edit.php di atas (menggunakan POST method).




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Script PHP untuk Edit Data dengan Komponen RadioButton pada Form
Teknik Submit Data Melalui Multi Form
Editing Data Tanggal via Form dengan PHP
Pemrosesan Form dengan Komponen Combo Box
Script PHP untuk Mengedit Data Via Form

Kata kunci: edit data dengan form -


Ada 46 komentar dalam artikel ini.



  1. rudy says:

    as.wr.wb.
    salam kenal aja
    begini, saya sudah buat skrip insertnya kok tidak bisa masuk ke database ya.
    bisa minta tolong diberikan skrip insertnya tidak mas?
    terima kasih

  2. linda says:

    Pak, saya newbie… mau menanyakan ketika saya mencoba membuat beberapa tutorial yang bapak ajarkan seperti membuat menambah, menghapus, serta mengedit data dengan menggunakan php. saat dijalankan melalui localhost, semua nya dapat dijalankan. form tersebut bisa ditambah, edit, hapus, dll.

    akan tetapi ketika saya mencoba menguploadnya ke hosting, ternyata fungsi hapus dan edit tidak bisa… padahal saat di localhost bisa..
    bgmn ya pa, mohon pencerahannya..

  3. rudy says:

    sudah saya coba…yang berhasil hanya yang bertype text saja mas.yang lainnya gagal.oh, ya ni maaf kalo merepotkan, saya lagi ada masalah, mau nanya gmana cara memperbaiki database yang rusak ya mas. terima kasih.

  4. anggoro says:

    mhon pncrahan bang,..
    sy ada prmasalahan mngenai edit dta.
    misal : field DB : panjang,lebar,Luas.

    $panjang=$_POST['panjang'];
    $lebar=$_POST['lebar'];
    $Luas=$panjang*$lebar; –> script RUMUS YG AKAN DIGANTI.

    misalkan kita sudah punya inputan data dgn
    perhitungan rumus mncri luas ( misal : L=p * l ) –> rmus prtama.
    suatu ketika rumus luas tersebut diganti mnjadi (misal L= p*l/2 atau dgn rumus laen) –> rmus kedua,
    padahal kita sudah menginputkan data yg banyak kdlam dtabase dgn mggunakan prhitungan rumus pertama.
    bagmna cara agar inputan data LAMA yg sudah msuk DB dgn prhitungan rumus prtama tsb,ter-update supaya hasil Luas mnjadi prhtungan dgn rumus luas yg sudah di ubah (rumus ke 2) ??
    apa di edit manual satu per satu kemudian di submit ulang, atau apakah ada teknik laen ??
    trimaksih…

  5. anto_eko says:

    artikel yamg cukup bangus untuk belajar.
    mas rosiharani, saya mau tanya ttg edit
    saya ada kasus gni, ada 2 tabel
    1. tabel kecamatan isinya (kd_kecamatan, dan nama_kecamatan)
    2. tabel penginapan isinya (id,nama_penginapan, nama_kecamatan)

    ketika saya input data dan menyimpan ke database dan memasukkannya ke tablel penginapan untuk nama_kecamatan saya ambil dari nama2 kecamatan d tabel kecamatan, dan yang tersimpan d tabel penginapan hanya kode kecamatannya saja.

    nah yang saya tanyakan, ketika d edit agar option yang default itu memanggil nama kecamatan dari tabel kecamatan gmana ya..?? kan yang tertulis d tabel penginapan hanya kode dari kecamatan itu saja..

    terima kasih sebelumnya, maaf pertanyaan saja agak muter2… hehheh

    • rosihanari says:

      @anto_eko: gunakan relasi tabel antara tabel penginapan dengan kecamatan berdasarkan kode kecamatan dengan SQL query saja mas

      SELECT kecamatan.nama_kecamatan as namakec
      FROM kecamatan, penginapan
      WHERE kecamatan.kd_kecamatan = penginapan.nama_kecamatan

    • iqbal says:

      sama tuh gan masalahnya ama ane…

      mas rosihanari,,
      saya udh coba koq ga bisa ya….???

      tolog dong solusinya..

      (klw boleh minta skripnya.. hhehhehhe)
      :D

  6. riski says:

    mas saya mau tanya…gmna ia cara membuat form search, lalu data hasil search’a dapat kita edit…

    thank;]

    • rosihanari says:

      @riski: biasanya hasil search ditampilkan dalam bentuk tabel. Di dalam tabel tersebut ada kolom berisi link untuk mengeditnya. Untuk link nya sertakan parameter ID dari data yang akan diedit. Lalu arahkan link tersebut ke halaman form edit. Untuk memunculkan data pada form edit tsb, gunakan query berdasarkan ID yang ada dalam parameter link.

  7. riski says:

    maap mas….bsa tolong d buatkan script searchnya tidak agar bsa tampil d tabel gt…????

    saya sudah brhasil mlakukan searchnya tetapi knapa parameter id-nya itu tidak terbaca pada saat d klik linknya….padahal sy sdah ksh sperti(input_KTP.php?nik=120589)… :/

    sy mnggunakan mode search dan view yang sy donlod dri internet….

    thank sebelumnya….

  8. arti says:

    pak mau minta script untuk setting tahun ajaran dalam sistem penilaian siswa smp. trimakasih

  9. nahlah says:

    terima kasih banyak infonya. saya sudah mencobanya dan Alhamdulillah, sukses.

  10. Nova says:

    mas.. mau tanya.
    aku puunya kasus seperti ini.

    mau tambah nilai.
    ada id_nilai, nis, id_ujian, nilai.

    di tabel ujian.
    ada id_ujian, id_pel, id_bobot.

    form di tambah nilai kaya gni mas.

    nama siswa: type:text
    mata pelajaran: select option dari tabel pelajaran berdasarkan id_pel
    sumber nilai: select option dari tabel bobot berdasarkan id_bobot
    nilai : type:text

    id_pel sama id_bobot sudah saya satukan dalam tabel ujian.

    cuma pengen nambah data.
    jadi kalo user memilih data pelajaran B.indonesia & sumber_nilai UAS

    id_ujiannya kebaca gtu mas. “induas”
    gtu mas.. nah di form nya gimana ya mas?

    #makasih mas

    • rosihanari says:

      @nova: di form pilih pelajaran itu kan ada value nya, demikian juga sumber nilai nya. Nah begitu disubmit tinggal digabung saja string value dari keduanya.

  11. margono says:

    mas saya ada pertanyaan nii.. gimana ya membuat combobox dinamis.. dimana isi dari combo box bila dipilih,akan muncul beberapa combobox lain yang sesuai dengan pilihan di combobox..contoh ada combo isinya pria dan wanita.. jika dipilih pria maka akan muncul texfield:nama istri;; pekerjaaan;; jumlah anak.. dan bila pilih istri akan muncul;;textfield untuk mengisi nama suami

  12. awam says:

    mas mau nanya.

    contoh diatas kan data combobox ny diinput manual,
    klo data combobox ny diambil dari tabel/dataase gimana buat ‘selected’ ny?

    trims

  13. eko says:

    pak saya mau tanya beberapa hal kira2 untuk contact person kemana yah …? alamat email mungkin…

  14. vero says:

    hallo pak,

    mau nanya nih, saya lagi bikin sistem stock barang ,, gmna cara nya saat user ngisi form untuk keluar barang , saat dia select misalnya item Rinso nah data2 dtable master nongol d form sebagai readonly…

    Nama brg: Rinso
    Stock : 1 -> Readonly -> ini dr table master
    Harga jual : 5000 -> Readonly
    Expired Item : 2013-02-10 -> ini table transaksi

    Terimakasih atas pencerahannya, sukses selalu

  15. babuta says:

    mau nanya pak. Saya punya masalah dengan edit data
    di tabel php. Masalahnya data dari database tidak
    muncul di form yang akan diedit. Bisa simpan tapi
    tidak bisa edit. Malah muncul eror seperti ini :

    Notice: Undefined index: kodejenis in C:\xampp\htdocs\tugas_akhir\edit_jenis.php on line 3

    kira2 apa yang salah?
    mohon bantuannya
    terima kasih banyak



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

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

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*