Create, Update dan Delete Data Master Dengan Ajax Dan Dynamic Grid
Berawal dari banyak request untuk pengembangan artikel sebelumnya tentang “Create, Update dan Delete Data Master Dengan Ajax” maka saya coba kembangkan form CRUD dengan metoda table dinamis (Dynamic Grid), maksudnya adalah semua kegiatan tambah, ubah dan menghapus dapat dilakukan pada table yang menampilkan data.
Masih mengambil topik managemen data pegawai, saya coba kembangkan script lama saya sehingga tampilannya seperti ini.

Tampilan saat menambah data

Tampilan saat mengubah data
Apabila semua dilakukan pada table, maka plugin Thickbox tidak diperlukan lagi, dan file “form.php” yang digunakan sebelumnya untuk tampilan popup tambah dan edit data juga tidak diperlukan.
Lalu yang harus ditambahkan adalah seperti berikut.
- Dengan dynamic grid, anda setidaknya ‘dipaksa’ mengeluarkan semua field yang dibutuhkan untuk mengedit dan menambah data, pada kali ini, field alamat yang tidak ditampilkan pada artikel sebelumnya harus saya tampilkan di table data.
- Karena table “master_pegawai” dan “master_department” saling terhubung maka field penghubung itu juga harus ditampilkan agar bisa diedit. Oleh karena itu setiap baris data ditambahkan inputan hidden “dept_id” untuk menyimpan ID dari “master_department” di table “master_pegawai“.
- Perlu ditambah fungsi-fungsi untuk menempatkan form pada grid ketika menambah data atau mengubah data. Anda bisa lihat di bawah ini.
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | /* variable "editState" akan digunakan sebagai penanda bahwa ada data yang sedang diedit jadi user tidak bisa menekan tombol edit pada masing-masing baris atau menambah data apabila form edit sedang ditampilkan */ var editState = false function newData(){ if(!editState){ $('#tableFoot').show(); }else{ alert('Tidak bisa menambah baris ketika mengedit baris'); } } function editData(ID){ if(!editState){ var element = '#tr'+ID; // ambil ID dari baris yang ingin diubah // isi dari form disisipkan di posisi setelah baris element yang ingin diedit $($('#tableFoot').html()).insertAfter(element); // kosongkan form tambah data agar tidak terjadi redudansi data yang dikirimkan $('#tableFoot').empty(); $('input[@name=ID]').val(ID); // masukan ID dari record yang ingin diedit di form ID $('input[@name=NIP]').val($(element+' td:nth-child(2)').text()); // isi inputan NIP diambil dari kolom kedua pada baris yang ingin diedit $('input[@name=Name]').val($(element+' td:nth-child(3)').text()); // isi inputan Nama diambil dari kolom ketiga pada baris yang ingin diedit, dst $('textarea[@name=Address]').val($(element+' td:nth-child(4)').text()); $('select[name=Department] option[value='+$('#dept_id'+ID).val()+']').attr('selected',true); $(element).hide(); // sembunyikan baris data yang ingin diedit editState = true; // set aplikasi ke keadaan sedang mengedit suatu baris }else{ alert('Anda sedang melakukan edit data, tekan button cancel sebelum melakukan edit pada baris ini'); } } function cancelForm(){ // action cancel pada saat mengedit beda perlakuannya dengan pada saat menambah data if(editState){ var element = $('#tr'+$('input[@name=ID]').val()); /* ketika mengedit data, baris ini di sembunyikan dan diganti oleh form ubah data oleh karena itu sebelum mengubah isi dari kolom data di baris ini, anda harus menampilkan kembali baris tsb dan menghapus baris form data */ element.show(); var html = '<tr>'+element.next().html()+'</tr>'; $('#tableFoot').html(html); // form pada bagian bawah diisi lagi kode HTML-nya dari form edit element.next().remove(); editState = false; }else{ $('#tableFoot').hide(); } $('input[@name=ID]').val(''); $('input[@name=NIP]').val(''); $('input[@name=Name]').val(''); $('textarea[@name=Address]').val(''); $('select[name=Department] option').removeAttr('selected'); } |
Berikut adalah demo dari program ini. DEMO
Berikut adalah link download program ini. DOWNLOAD
Semoga bermanfaat… ^_^
Chandra Jatnika

mantap ten…sedot ilmu.
trus update lagi lah blog na
Bagus…makasih aku unduh ya
LUAR BIASA
TOB MARKOTOB
INI YANG AKU CARI
TQ BERAT GAN ^____^
ini yang saya cari mas!! terima kasih , ditunggu postingan yang lain m,as
sukses selalu buat mas…
mantep
makaciii kk…^_^ GBu always…
keran bagte dah
Luar biasa ajaxnya!! izin download ya..
wah, ini ni yang aku cari, luar biasa……………………………………..