Di tutorial sebelumnya kita sudah berhasil mengambil dan menampilkan data dari database. Nah pada tutorial kali ini, mari kita lanjutkan dengan menambahkan fasilitas untuk menambahkan data ke dalam database. Nah, sebelum mulai, anda bisa mendapatkan source code lengkap dari proyek kita ini di sini. Okay kita lanjutkan saja proyek yang kita buat dari tutorial sebelumnya. Sebelumnya mari kita perbaiki terlebih dahulu desain website yang kita buat agar terlihat sedikit lebih rapi. Silahkan ubah /application/views/viewmahasiswa.php yang telah kita buat sebelumnya. Agar lebih cepat, silahkan copy-paste code dibawah ini.
Wow, ternyata banyak yang berubah yah? Eits? dalam tag <head> ada kode yang aneh tuh! Okey-okay nanti saya jelaskan apa maksudnya. Tapi ngga masalah. Nah sekarang, buatlah direktori baru di direktori root (dalam tutorial ini di direktori webku) kamu dan beri nama css. Selanjutnya buatlah file bernama style.css dan simpan di dalam direktori tersebut. Okay tinggal copy-paste aja code di bawah ini coy!<!DOCTYPE> <html> <head> <title><?php echo $judul ?></title> <link href="<?php echo base_url()?>css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="<?php echo base_url()?>js/jquery-1.4.js"></script> <head> <body> <div id="notifikasi" style="display:none"></div> <div id="wraper"> <div id="header"> <h2>CRUD Dengang CodeIgniter + Ajax + JQuery</h2> </div> <div id="content"> <div id="paneltombol"> <input type="button" class="tombol" id="btnSimpan" value="Simpan" style="display:none"> <input type="button" class="tombol" id="tombolTambah" name="tombolTambah" value="Tambah Data"> </div> <div id="data"> <table border="0" width="100%" cellspacing="0" > <tr> <th>Nim</th> <th>Nama</th> <th>Jurusan</th> <th>Angkatan</th> <th>IPK</th> </tr> <?php foreach($mahasiswa as $baris):?> <tr> <td><?php echo $baris->nim ?></td> <td><?php echo $baris->nama ?></td> <td><?php echo $baris->jurusan ?></td> <td><?php echo $baris->angkatan ?></td> <td><?php echo $baris->ipk ?></td> </tr> <?php endforeach ?> </table> </div> </div> </div> </body> </html>
Nah selanjutnya buatlah sebuah direktori lagi dan beri nama js di direktori root kamu. Kemudian silahkan download Jquery di sini dan letakan dalam direoktori tersebut.*{ margin: 0; padding: 0; } body{ font-family: "Lucida Grande", "Calibri", Verdana; } h2{ font-size: 16px; } table{ margin-bottom: 2px; border: 1px solid #D3D3D3; } th,td{ border: 1px solid #D3D3D3; font-size: 12px; padding: 5px; } th{ background-color: #E6E6FA; } #wraper{ margin: 20px auto; width: 950px; border: 1px solid #D3D3D3; -moz-border-radius: 10px 10px 5px 5px; border-radius: 10px 10px 5px 5px; } #header{ height: 40px; background-color: #E3F1FF; border-bottom: 1px solid #D3D3D3; padding: 20px 0 0 20px; -moz-border-radius: 10px 10px 0 0; border-radius: 10px 10px 0 0; } #content{ padding: 10px; background-color: #F8F8FF; font-size: 10px; -moz-border-radius: 0 0 5px 5px; border-radius: 0 0 5px 5px; } #paneltombol{ clear: both; float: right; padding: 10px; margin-bottom: 10px; position: relative; } #data{ clear: both; } .tombol{ height: 30px; border: 1px solid #D3D3D3; background-color: #E6E6FA; font-size: 12px; -border-radius: 5px; -moz-border-radius: 5px; } #notifikasi{ font-size: 10px; padding: 10px; right: 10px; top: 10px; position: absolute; border: 1px solid #d3D3D3; background-color: #E6E6FA; }
Jadi saat ini direktori root kamu terdapat 2 direktori baru yaitu css dan js. Dengan demikian di root folder kamu sekarang terdapat beberapa direktori diantaranya application, css, js, system, dan user_guide. Nah silahkan lihat terlebih dahulu tampilan baru aplikasi yang kita buat. Ketikan http://localhost/webku atau http://localhost/webku/index.php/conmahasiswa. Kira-kira tampilan aplikasi kita akan seperti gambar di bawah ini.
Nah dalam tag <head> di viewmahasiswa.php terdapat code seperti ini.
Apa maksud tag <?php echo base_url() ?> tersebut? Di tutorial sebelumnya kita telah mengeset base url kita menjadi http://localhost/webku bukan? Jika pembaca belum ingat silahkan buka kembali /application/config/config.php. Bentuk lain dari code di atas adalah sebagai berikut.<link href="<?php echo base_url()?>css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="<?php echo base_url()?>js/jquery-1.4.js"></script>
Nah, selanjutnya kita akan menambahkan sebuah function baru di controller kita. Tambahkan function berikut ini di /application/controllers/conmahasiswa.php<link href="http://localhost/webku/css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://localhost/webku/js/jquery-1.4.js"></script>
Dalam function tambah() kita me-load view yang bernama inputmahasiswa. Isi dari inputmahasiswa adalah form untuk menambahkan data baru ke dalam database. Ketika tombol tambah data diklik, form tambah data ini akan diload di div data dalam viewmahasiswa.php dengan menggunakan Ajax. Buatlah sebuah file baru bernama inputmahasiwa.php dan simpan di /application/views/.function tambah(){ $data['judul'] = 'Input Data Mahasiswa'; $this->load->view('inputmahasiswa'); }
Selanjutnya, silahkan tambahkan code berikut dalam tag <head> di /application/views/viewmahasiswa.php<form id='formmahasiswa'> <div> <label>Nim</label> <input type="text" name="nim" id="nim" size="30" class="inputform"> </div> <div> <label>Nama</label> <input type="text" name="nama" id="nama" size="30" class="inputform"> </div> <div> <label>Jurusan</label> <input type="text" name="jurusan" id="jurusan" size="30" class="inputform"> </div> <div> <label>Angkatan</label> <input type="text" name="angkatan" id="angkatan" size="30" class="inputform"> </div> <div> <label>IPK</label> <input type="text" name="ipk" id="ipk" size="30" class="inputform"> </div> </form>
Apa maksud code di atas? Jadi ketika tombol tambah diklik maka akan dijalankan fungsi Ajax dimana akan dilakukan request ke server dengan url http://localhost/index.php/conmahasiswa/tambah. Kemudian apabila request yang dilakukan suskses maka, hasil HTML-nya akan diload di div data. Kemudian tombol tambah data akan disembunyikan dan tombol simpan akan ditampilkan. Apakah anda sudah mencoba? Ups! Mari kita perbaiki tampilan formnya yang masih berantakan. Silahkan tambahkan code berikut di file css anda.<script type="text/javascript" > $().ready(function(){ $("#tombolTambah").click(function(){ $.ajax({ url : "<?php base_url() ?>index.php/conmahasiswa/tambah", beforeSend: function(){ $("#data").html("Loading..."); }, success: function(html){ $("#data").html(html); $("#btnSimpan").show(); $("#tombolTambah").hide(); } }); }); }); </script>
#formmahasiswa div{ margin: 5px; display: block; } #formmahasiswa label{ display: block; margin-bottom: 5px; } .inputform { width: 100%; height: 30px; border: 1px solid #D3D3D3; }
Nah, sampai di sini, kita telah berhasil menampilkan form input, sekarang mari kita rubah sedikit function tambah() di controller kita. Ubahlah function tambah di /application/controller/conmahasiswa.php seperti di bawah ini.
Apabila data $_POST tidak sama dengan NULL maka data akan disimpan dengan memanggil function insertDataMahasiswa() yang terdapat di modelmahasiswa. Untuk itu tambahkan function berikut ini di /application/models/modelmahasiswa.phpfunction tambah(){ if($_POST == null) { $data['judul'] = 'Input Data Mahasiswa'; $this->load->view('inputmahasiswa'); } else { $nim = $this->input->post('nim'); $nama = $this->input->post('nama'); $jurusan = $this->input->post('jurusan'); $angkatan = $this->input->post('angkatan'); $ipk = $this->input->post('ipk'); $data=array( 'nim' => $nim, 'nama' => $nama, 'jurusan' => $jurusan, 'angkatan' => $angkatan, 'ipk' => $ipk ); $this->modelmahasiswa->insertDataMahasiswa($data); } }
Kemudian mari kita tambahkan fungsi ketika tombol simpan diklik. Silahkan tambahkan code berikut di bawah fungsi tombol tambah.function insertDataMahasiswa($data){ $this->db->insert('mahasiswa',$data); }
Ketika tombol simpan diklik maka, fungsi Ajax akan djalankan dengan type post ke http://localhost/webku/index.php/conmahasiswa/tambah. Kemudian dalam function tambah, karena $_POST berisikan data, maka disimpan dan div data akan direload ulang. Kemudian, aplikasi akan menampilkan notifikasi bahwa berhasil disimpan.$("#btnSimpan").click(function(){ var nim = $("#nim").val(); var nama = $("#nama").val(); var jurusan = $("#jurusan").val(); var angkatan = $("#angkatan").val(); var ipk = $("#ipk").val(); $.ajax({ url :"<?php echo base_url() ?>index.php/conmahasiswa/tambah", type:"post", beforeSend: function(){ $("#data").html("Loading..."); }, data: "nim="+nim+"&nama="+nama+"&jurusan="+jurusan+"&angkatan="+angkatan+"&ipk="+ipk, success: function(html){ $("#notifikasi").html('Data berhasil disimpan'); $("#data").load("index.php/conmahasiswa/index #data"); $("#notifikasi").fadeIn(2500); $("#notifikasi").fadeOut(2500); $("#btnSimpan").hide(); $("#tombolTambah").show(); } }); });
Nah selesai sudah! Mari kita coba aplikasi yang kita buat. Ketikan http://localhost/webku di web browser pembaca.
Untuk source code lengkap dari proyek yang telah kita kerjakan sejauh ini, bisa anda download di sini
Hokay, sekian tutorial kali ini. Di tutorial selanjutnya, kita akan membuat fasilitas untuk mengedit dan menghapus data. See ya!
great tutorial bro
BalasHapusthanks bro
HapusKomentar ini telah dihapus oleh pengarang.
BalasHapusbang koq stuck di loading ya abis diklick tambah data
BalasHapushelp please :)
Apakah sudah dicek function tambah() pada controller conmahasiswanya bang. Jika abang menggunakan Browser Firefox, coba install addon firebug agar errornya mudah ditemukan. Klik di sini untuk install Firebug di Browser Firefox abang http://adf.ly/IIiMp
Hapusjika loading stuck cek pada bagian
Hapusurl : "index.php/conmahasiswa/tambah"
harap di cek masih ada error atau tidak caranya silahkan di hit urlnya di browser.
sama. abis klik tambah data, yg ada loading forever...
BalasHapusmantap
BalasHapusTutorial yang baik, Sangat membantu :D
BalasHapusbro, ada typo dikit.
BalasHapus1. waktu agan suruh bikin view input mahasiswa, salah ketik jadi inputmahasiwa.php
2. script tambahan untuk pemberian di inputmahasiswa, di viewmahasiswa.php sepertinya salah gan. saya lihat pake firebug, ada error:
ReferenceError: $ is not defined
$().ready(function(){
itu harus diganti apa ya gan? mohon penjelasannya ya.
makasi gan. selebihnya artikel ini sangat membantu dengan pembahasan yang sangat enak dicerna.
uda ketemu gan...
Hapustemen2 di atas pada error loading gak kelar2 pasti karena pas nulis view inputmahasiswa-nya copas dari artikel lgs, soalnya agan tulisnya inputmahasiwa. coba diganti jadi inputmahasiswa, pasti deh bener.
yang kedua itu ternyata ane salah tulis nama jsnya... hehehe...
mantab gan. nice tutorial, lanjut ke tutorial berikutnya.
terus berkarya... (y)
weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
HapusSaya masukin file js dengan format di atas, tapi pas di jalankan di urlnya kok ga nampil yah? sedangkan css nya tampil
BalasHapusmantep bro
BalasHapustutorialnya mantap gan
BalasHapuswww.smartkiosku.com