From ee3a21b9d0027e18456941cd55aba36189708496 Mon Sep 17 00:00:00 2001 From: AfiqAbdullah Date: Fri, 19 Feb 2016 16:57:29 +0800 Subject: [PATCH 1/2] Individual column filtering I just added Individual column filtering and check every column value if null. --- application/libraries/Datatables.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/application/libraries/Datatables.php b/application/libraries/Datatables.php index c6de11f..310d47d 100644 --- a/application/libraries/Datatables.php +++ b/application/libraries/Datatables.php @@ -324,16 +324,28 @@ private function get_filtering() $sSearch = $this->ci->db->escape_like_str(trim($search['value'])); $columns = array_values(array_diff($this->columns, $this->unset_columns)); - if($sSearch != '') - for($i = 0; $i < count($mColArray); $i++) + if($sSearch != ''){ + for($i = 0; $i < count($mColArray); $i++){ if ($mColArray[$i]['searchable'] == 'true' && !array_key_exists($mColArray[$i]['data'], $this->add_columns)) if($this->check_cType()) $sWhere .= $this->select[$mColArray[$i]['data']] . " LIKE '%" . $sSearch . "%' OR "; else $sWhere .= $this->select[$this->columns[$i]] . " LIKE '%" . $sSearch . "%' OR "; + } + $sWhere = substr_replace($sWhere, '', -3); + } + else{ + for($i = 0; $i < count($mColArray); $i++){ + if ($mColArray[$i]['searchable'] == 'true' && !array_key_exists($mColArray[$i]['data'], $this->add_columns) && $mColArray[$i]['search']['value']!=''){ - - $sWhere = substr_replace($sWhere, '', -3); + if($this->check_cType()) + $sWhere .= $this->select[$mColArray[$i]['data']] . " LIKE '%" . $mColArray[$i]['search']['value'] . "%' AND "; + else + $sWhere .= $this->select[$this->columns[$i]] . " LIKE '%" . $mColArray[$i]['search']['value'] . "%' AND "; + } + } + $sWhere = substr_replace($sWhere, '', -4); + } if($sWhere != '') $this->ci->db->where('(' . $sWhere . ')'); From dacb1bb968cfc758f39ff6f4438b3c8bfd2444bf Mon Sep 17 00:00:00 2001 From: AfiqAbdullah Date: Fri, 19 Feb 2016 17:06:59 +0800 Subject: [PATCH 2/2] forgot to trim column Edit +trim column [number] [search] [value] --- application/libraries/Datatables.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/libraries/Datatables.php b/application/libraries/Datatables.php index 310d47d..9f7fc06 100644 --- a/application/libraries/Datatables.php +++ b/application/libraries/Datatables.php @@ -337,11 +337,11 @@ private function get_filtering() else{ for($i = 0; $i < count($mColArray); $i++){ if ($mColArray[$i]['searchable'] == 'true' && !array_key_exists($mColArray[$i]['data'], $this->add_columns) && $mColArray[$i]['search']['value']!=''){ - + $sSearch = $this->ci->db->escape_like_str(trim($mColArray[$i]['search']['value'])); if($this->check_cType()) - $sWhere .= $this->select[$mColArray[$i]['data']] . " LIKE '%" . $mColArray[$i]['search']['value'] . "%' AND "; + $sWhere .= $this->select[$mColArray[$i]['data']] . " LIKE '%" . $sSearch . "%' AND "; else - $sWhere .= $this->select[$this->columns[$i]] . " LIKE '%" . $mColArray[$i]['search']['value'] . "%' AND "; + $sWhere .= $this->select[$this->columns[$i]] . " LIKE '%" . $sSearch . "%' AND "; } } $sWhere = substr_replace($sWhere, '', -4);