menggunakan plugin datatables pada codeigniter kini semakin mudah, karena sudah ada library khusus codeigniter :))
- selesai, selamat mencoba :))
asumsi :
- sudah install xampp
- sudah install codeigniter
-sudah install jquery
- sudah install file2 datatables di codeigniter
file yang dibutuhkan:
berikut langkah2nya :
- buat database dan tabel beserta isinya. contoh saya membuat tabel obat:
- lalu set database name sesuai dengan nama database yang kamu buat di 'application/config/database.php
- buat file controller dgn nama misal 'testControl' dengan isi sebagai berikut:
<?php class testControl extends CI_Controller { function view_obat() { $this->load->view('view_obat'); } function ajax_view_obat() { $this->load->library('Datatables'); $this->datatables->from('obat'); $this->datatables->select('kode_obat,nama_obat,kode_satuan,kode_supplier'); echo $this->datatables->generate(); } } //end of file testControl
- buat view dengan nama 'view_obat' dengan isi sbb:
- dan hasilnya sebagai berikut:<head> <script type="text/javascript" src="<?php echo base_url();?>lib/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="<?php echo base_url();?>lib/js/jquery.dataTables.js"></script> <link rel="stylesheet" type="text/css" media="screen" href="<?php echo base_url(); ?>lib/css/demo_table_jui.css"/> <link rel="stylesheet" type="text/css" media="screen" href="<?php echo base_url(); ?>lib/css/demo_table.css"/> </head> <body> <h2>data obat</h2> <hr> <table id="tbl" cellpadding="0" cellspacing="0" border="0" class="display" > <thead> <tr> <th>kode obat</th> <th>nama obat</th> <th>kode satuan</th> <th>kode supplier</th> </tr> </thead> <tbody> <tr> <td colspan="5" class="dataTables_empty">Loading data from server</td> </tr> </tbody> <tfoot> <tr> </tr> </tfoot> </table> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { $('#tbl').dataTable( { "bProcessing": true, "bServerSide": true, 'sPaginationType': 'full_numbers', "sAjaxSource": "<?=base_url()?>index.php/testControl/ajax_view_obat/", "aaSorting": [[ 0, "desc" ]] } ); } ); </script> </body>
- selesai, selamat mencoba :))
dan modelnya kemana???? tak tunggu lo mas filenya
BalasHapussebenernya ini hanya contoh sederhana saja, tidak menerapkan konsep NVC pada codeigniter itu sendiri,
Hapuskalo misal ingin menerapkan itu tinggal pindahkan fungsi ajax_view_obat() yang ada di controller ke model, echo diganti return, dan buat fungsi di controller utk memanggil fungsi model tersebut, lalu echo
buat memanggil fungsi model nya gimna ya?
Hapusmas itu nyimpen library Datatables di floder yang mana?
BalasHapusterimakasih
di folder application/libraries
Hapussama-sama
mas, gimana cara nambah tombol edit dan delete pada stiap row datatables nya?????
BalasHapuspake fungsi 'add_column()', diletakkan di controller setelah '$this->datatables->select();'
Hapuscontohnya:
$this->datatables->add_column('a', '<a href="'.base_url().'admin/del_obat/$1"', 'kode_obat , delete');
$1 akan digenerate menjadi kode_obat pada tiap baris, $2 akan diganti menjadi tulisan delete.
monggo di coba
$this->datatables->add_column('a', '<a href="'.base_url().'admin/del_obat/$1"', 'kode_obat , delete');
Hapustulisan $2 dari mana ? setelah admin/del_obat/$1/$2 kaya konsep .httacess?
maaf itu kurang lengkap codenya, yang bener:
Hapus$this->datatables->add_columnundefined'a', '<a href="'.base_url().'admin/del_obat/$1">$2</a>', 'kode_obat , delete');
atau tanpa menggunakan $2 pun bisa:
$this->datatables->add_columnundefined'a', '<a href="'.base_url().'admin/del_obat/$1">delete</a>', 'kode_obat');
saya sudah mengikuti langkah2 diatas akan tetapi kenapa yang muncul hanya tulisan "Processing..." begitu saja tetapi hasil select database tidak muncul?mohon pencerahan, terima kasih.
BalasHapuscek database nya ??
Hapuscoba di var dump hasil function ajax_view_obat()
localhost/namaweb/namacontroller/namafunction
iya betul, coba di cek databasenya, atau langsung aja ubah urlnya '/view_obat' jadi '/ajax_view_obat' nanti keluar json scriptnya
Hapusbagaimana klo data tersebut berjumlah 50 rb record ?? klo datatables ini kan mengambil semua record kemudian di generate ( paging ) ulang , klo datanya sedikit its ok ga masalah tp klo datanya buanyak gmn ??? browser bakal HANG ..hhe
BalasHapussaran: buat tutorial lanjutan dari seri ini :D
keep share bro
belum pernah nyoba c, cuma udah pake option bserverside:true di codingan ini, penjelasan lengkapnya cek di http://datatables.net/usage/server-side
Hapusterimakasih atas sarannya (",)b
Hapusg klo pake mekanisme seperti ini soalnya di jalankan di belakang server saya ada data 2000 baris dan tidak masalah
BalasHapustrimakasih atas reviewnya (",)b
BalasHapusMas kalo ngasih nomor urut gimana.. terima kasih
BalasHapusubah kode:
Hapus$this->datatables->select('kode_obat,nama_obat,kode_satuan,kode_supplier');
jadi:
$this->datatables->select('(@cnt := @cnt + 1) AS rowNumber, kode_obat,nama_obat,kode_satuan,kode_supplier');
counting incrementnya lewat mysql,
ini klo datanya ribuan lemot gak?
BalasHapustidak, karena sudah menggunakan server-side processing untuk penjelasan lebih jelasnya : https://www.datatables.net/examples/data_sources/server_side.html
HapusSangatt bermanfaat gan... semoga berkah ilmunya... aamiin
BalasHapusKomentar ini telah dihapus oleh pengarang.
HapusMas, kalau pake codeigniter 3 gimana caranya ya. Saya coba yang ini kok ndak bisa. Thks.
BalasHapusmas kalo mau nambahin link untuk edit/delete gimana ? thx sebelumnya sangat membantu
BalasHapus