Jumat, 27 Oktober 2023

Mencari Solusi Pencarian Data By Kolom pada DataTables ServerSide

 Pada penerapan DataTables ServerSide biasanya menemui beberapa kendala diantaranya : 

  1. Jumlah kolom yang berbentuk array, disini kita harus memahami jumlah kolom yang akan ditampilkan. Kemudian disesuaikan dengan ajax untuk menampilkan dataTables.

  $('#example1').DataTable( {
            "processing": true,
            "serverSide": true,
            "ajax": "./modul/aset-tetap-lain/load-data.php?d="+as+"&a="+ad+"&b="+ak,
            "columnDefs": [    
                { className: "UniqCenter", "targets": [ 15 ] },
                { className: "UniqRupiah", "targets": [ 16 ] },
                {
                "searchable"    : false,
                "orderable"     : false,
                "targets"       : 17,
                "render"        : function(data,type,row){  
                    // if(row["3"].length=='4'){
                    //  row["3"]='4';
                    // }  
                    // var btn="";
                    // return btn;
                    return data;

                            }
                }
            ]
        } );




$columns = array(    //disesuaikan dena SELECT di baris 45
            'NAMA_BARANG_BARU',
            'Nomor_Register',
            'Tahun_Pengadaan',
            'CMBMERK6',
            'TUKURAN7',
            'CMBBAHAN7',
            // 'no_pabrik',
            'TRANGKA6',
            'TMESIN6',//
            'TPOLISI6',
            'TNOMOR6',
            'TJUMLAH7',
            'Harga_Perolehan',
            'CMBASAL6'
           );

  1. Proses pencarian pada semua kolom biasanya tidak berhasil dan akan mengakibatkan error pada tampilan. hal ini dikarenakan kolom yang akan ditampilkan merupakan gabungan (CONCAT) dari dua atau lebih kolom (field). maka disini kita harus menyesuaikan alias pada select tabel nya, harus sesuai dengan nama kolom (field) yang ada di tabel.

$sql = "SELECT a.kode,
CONCAT(a.KODE_BARU,'<br><b>',c.URAIAN ,'</b>') AS NAMA_BARANG_BARU,
FORMAT(a.Nomor_Register, 0) as Nomor_Register,  a.Tahun_Pengadaan as Tahun_Pengadaan,
CONCAT(IF(a.CMBMERK6<>'', a.CMBMERK6,  a.CMBMERK7) ,'<br>', IF(a.CMBTYPE7<>'',
a.CMBTYPE7, a.CMBTYPE6)) as CMBMERK6, TUKURAN7 AS TUKURAN7,  a.CMBBAHAN7 as CMBBAHAN7,

a.TRANGKA6 as TRANGKA6, a.TMESIN6 as TMESIN6, a.TPOLISI6 as TPOLISI6,
CONCAT(a.TNOMOR6, '<br>',a.DTPBPKB6) as TNOMOR6,  a.TJUMLAH7 as TJUMLAH7,
FORMAT(a.Harga_Perolehan, 0) Harga_Perolehan,
IF(substr(a.KODE_BARU,7,2)<='02', a.CMBASAL6, a.CMBASAL7) AS CMBASAL6 from  
tabel_transaksi as a  left join tbbarang as b on a.Kode_Barang=b.KODE_BARANG
left join tabel_barang_baru as c on a.KODE_BARU=c.KODE_BARU ";

 $where  = " a.KODE_KIB='2' AND a.KODE_BARU!=''";


Silahkan bandingkan dengan array Kolom pada point 1. 

Dengan begitu insya allah pencarian akan berjalan dengan baik.




Tidak ada komentar:

Posting Komentar