2013-08-19 93 views
0

我在我的php代碼中使用數據表來通過使用selectbox過濾列。在jquery.dataTables.js,一體成型的有如下代碼:通過數據表中的單列過濾器進行精確短語搜索

/* Single column filter */ 
$.extend(oSettings.aoPreSearchCols[ iColumn ], { 
    "sSearch": sInput+"", 
    "bRegex": bRegex, 
    "bSmart": bSmart, 
    "bCaseInsensitive": bCaseInsensitive 
}); 
_fnFilterComplete(oSettings, oSettings.oPreviousSearch, 1); 

在我來說,我有一個包含BMISMTLABM值的列。現在,當我搜索BM的列時,我得到了BM以及ABM記錄。但它應該只有BM記錄。 我已經修改了上面的代碼:

/* Single column filter */ 
    $.extend(oSettings.aoPreSearchCols[ iColumn ], { 
     "sSearch": sInput+"", 
     "bRegex": false, 
     "bSmart": false, 
     "bCaseInsensitive": false 
    }); 
    _fnFilterComplete(oSettings, oSettings.oPreviousSearch, 1); 

但仍是不能正常工作。所以請幫助我如何做到這一點。 在此先感謝。

+0

是這個JavaScript? – shapeshifter

+0

你的javasrcipt。' – Mausumi

+0

那麼爲什麼會有「php」標籤? – Voitcus

回答

0

而不是更改jquery.dataTables.js,更改聲明和定義數據表的頁面。更改爲

$('select', this).change(function() { 
      if($(this).val() != ''){ 
       oTable.fnFilter("(^|\s)"+$(this).val()+"(\s|$)", i ,true); //filter exact word 
      }else{ 
       oTable.fnFilter($(this).val(), i); 
      } 
     }); 
0

使用自己的正則表達式,請記住以禁用至REGx和智能過濾

oSettings.aoPreSearchCols[ iColumn ], { 
     "sSearch": "^\\s*"+sInput+"\\s*$", 
     "bRegex": false, 
     "bSmart": false, 
     "bCaseInsensitive": false 
    }