2013-08-19 3 views
0

필자는 selectbox를 사용하여 열을 필터링하기 위해 PHP 코드에서 datatables를 사용하고 있습니다. jquery.dataTables.js에서, 거기에서 하나의 코드가 좋아 : 내 경우datatables에서 단일 열 필터로 정확한 구문 검색

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

을 내가 BM, ISM, TLABM 값을 포함하는 열이. 이제 열을 BM으로 검색 할 때마다 BMABM 레코드가 있습니다. 그러나 그것은 단지 BM 레코드이어야합니다. 나는에 위의 코드를 수정했습니다 :

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

하지만 여전히 작동하지 않습니다. 그러니 어떻게 할 수 있는지 알려주세요. 미리 감사드립니다.

+0

을 사용하지 기억인가? – shapeshifter

+0

나중에 해당 javasrcipt. ' – Mausumi

+0

그래서 "php"태그가있는 이유는 무엇입니까? – Voitcus

답변

0

jquery.dataTables.js에서 변경하는 대신 datatables가 선언되고 정의되는 페이지를 변경하십시오. 이 자바 스크립트는 자신의 정규 표현식을 사용

$('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 
    } 
관련 문제