Datatables Server Side

Run Settings
LanguagePHP
Language Version
Run Command
var $table = 'account'; var $column_order = array(null, 'nama_akun','no_akun','sub_no_akun', 'status_akun', 'level_akun', 'nama_user', 'saldo_awal', 'created_at', 'users.nama_user'); var $column_search = array('nama_akun','no_akun','sub_no_akun', 'status_akun', 'level_akun', 'nama_user', 'saldo_awal', 'created_at', 'users.nama_user'); //field yang diizin untuk pencarian var $order = array('no_akun' => 'asc'); // default order // Datatable private function _get_datatables_query() { $this->db->from($this->table); $this->db->join('users', 'account.created_by = users.id', 'left'); $i = 0; foreach ($this->column_search as $item) // looping awal { if($_POST['search']['value']) // jika datatable mengirimkan pencarian dengan metode POST { if($i===0) // looping awal { $this->db->group_start(); $this->db->like($item, $_POST['search']['value']); } else { $this->db->or_like($item, $_POST['search']['value']); } if(count($this->column_search) - 1 == $i) $this->db->group_end(); } $i++; } if(isset($_POST['order'])) { $this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']); } else if(isset($this->order)) { $order = $this->order; $this->db->order_by(key($order), $order[key($order)]); } // $this->db->select('account.*, users.id as idUser, users.nama_user'); // $this->db->from('account'); // $this->db->join('users', 'account.created_by = users.id', 'left'); // // $this->db->join('users', 'users.id = account.created_by', 'left'); // return $this->db->get()->result(); } function get_datatables() { $this->_get_datatables_query(); if($_POST['length'] != -1) $this->db->limit($_POST['length'], $_POST['start']); $query = $this->db->get(); return $query->result(); } function count_filtered() { $this->_get_datatables_query(); $query = $this->db->get(); return $query->num_rows(); } public function count_all() { $this->db->from($this->table); return $this->db->count_all_results(); }
$list = $this->MasterModel->get_datatables(); $data = array(); $no = $_POST['start']; foreach ($list as $ls) { $row[] = $ls->no_akun.'.'.$ls->sub_no_akun; $row[] = $ls->nama_akun; $row[] = $ls->level_akun; $row[] = $ls->status_akun; $row[] = number_format($ls->saldo_awal); $row[] = date('d-m-Y', strtotime($ls->created_at)); $row[] = $ls->nama_user; $row[] = '<button class="btn btn-default btn-sm edit-data" data-no-akun="'.$ls->no_akun.'" data-sub-no-akun="'.$ls->sub_no_akun.'" data-nama="'.$ls->nama_akun.'" data-level="'.$ls->level_akun.'" data-status="'.$ls->status_akun.'"><span class="fa fa-pencil"></span></button> <button data-akun="'.$ls->no_akun.'" data-sub="'.$ls->sub_no_akun.'" data-nama="'.$ls->nama_akun.'" class="btn btn-danger delete-data btn-sm"><span class="fa fa-times"></span></button>'; $data[] = $row; } $output = array( "draw" => $_POST['draw'], "recordsTotal" => $this->MasterModel->count_all(), "recordsFiltered" => $this->MasterModel->count_filtered(), "data" => $data ); echo json_encode($output);
function show_akun() { $('#table-akun').dataTable({ "processing": true, "serverSide": true, "order": [], "ajax": { "url": "<?= base_url('Master_Account/get_account')?>", "type": "POST" }, "columnDefs": [ { "targets": [ 0 ], "orderable": false, }, ], }); }
Editor Settings
Theme
Key bindings
Full width
Lines