iEntegre
3 min readJun 27, 2022

--

Datatables Özel Filtreleme

Datatables Özel Filtreleme — Server Side Ajax

Datatables Özel Filtreleme — Server Side Ajax
Kullanılan Kütüphaneler
* Bootstrap v3.3.6
* DataTables 1.10.11
* jQuery v2.2.4
* Select2 4.0.5
* Date Range Picker 3.1

Bu Örnek; Datatables üzerinde Özel Filtrelemenin nasıl yapıldığı anlatılmaktadır. Bu Örnek üzerinden istediğiniz gibi geliştirebilir veya değişim yapabilirsiniz.

Filtreleme 3 ayrı method içermektedir

  • Klasik Arama ile
  • Kategori ismine Göre Filtreleme
  • Tarih aralığına göre Filtreleme
// Default Datatables JS Codes
tableName =
$('#dynamic-table').DataTable( {
"ordering": false,
"processing": true,
"serverSide": true,
"stateSave": true,
"ajax":{
url :"ajax_query.php",
type: "post",
error: function(){}
},
"lengthMenu": [ 10, 25, 50, 75, 100,1000 ],
'columnDefs': [{
'targets': 0,
'searchable': false,
'orderable': false,
'className': 'center',
'render': function (data, type, full, meta){
return '<label class="pos-rel"><input type="checkbox" name="id[]" value="'+data+'" class="ace" /><span class="lbl"></span></label>';
}
}

],
'order': [[1, 'asc']],
select: true,
select: {
style: 'multi',
selector: 'td:first-child',
info: false
},
"fnInitComplete": function(oSettings, json) {
// Load Compmplete Functions
},
"drawCallback": function( settings ) {
// Callback Draw Functions
}
} );
// ajax_query.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if($_POST){
include_once('db.php'); // Database Connect

$search = '';
$kat_search = '';
$date_filter = '';
if($_POST['search']['value']) {
$search = trim(strip_tags($_POST['search']['value']));
$search = "AND (a.name like '%$search%' || b.name like '%$search%')";
}

// Category Filter
if($_POST['columns'][0]['search']['value']) {
$catID = $_POST['columns'][0]['search']['value'];
$kat_search = "AND b.id = $catID";
}

// Date Filter
if($_POST['columns'][1]['search']['value']) {
$date = $_POST['columns'][1]['search']['value'];
if (strpos($date, '@') !== false) {
$date = explode('@',$date);
$date_start =…

--

--

iEntegre
0 Followers

We teach those who want to learn