2014-04-10 3 views
3

일부 데이터를 표시하기 위해 jQuery 데이터 테이블을 사용하고 있지만 여러 체크 박스가있는 데이터를 필터링하려고합니다.
내 표는이 헤더가 포함되어 Host, Type, Record, Description, Free
을 그리고 이것들은 데이터 테이블의 외부 내 체크 박스입니다 : 나는 모두 표시 할 시작에서 그래서 01 :
유형 : MXACNAME
무료 데이터. 이제 누군가가 MX 확인란을 선택하면 MX 유형의 데이터 만 표시됩니다. 누군가 MX, CNAME0을 확인하면 해당 필터가있는 데이터 만 표시됩니다. 내가 무슨 뜻인지 알지?
이 작업을 수행 할 수있는 플러그인이 있지만 체크 박스는 열 아래에 있으며, 내 확인란은 데이터 테이블 외부에 있습니다.jQuery DataTables : 다중 체크 박스 필터링

아이디어가 있으십니까?

+0

시작하기 전에 : 여기에서 서버 쪽 처리를 사용하고 있습니까? 그렇지 않다면, 당신은 덩어리를 준비 할 수 있습니까? – mainguy

+0

@mainguy 아니요, 서버 쪽 처리를 사용하지 않습니다. 플 런커 란 무엇입니까? – Sylnois

답변

7

이 기능을 사용한다 : 코멘트에

function filterme() { 
    //build a regex filter string with an or(|) condition 
    var types = $('input:checkbox[name="type"]:checked').map(function() { 
    return '^' + this.value + '\$'; 
    }).get().join('|'); 
    //filter in column 0, with an regex, no smart filtering, no inputbox,not case sensitive 
    otable.fnFilter(types, 0, true, false, false, false); 

    //build a filter string with an or(|) condition 
    var frees = $('input:checkbox[name="free"]:checked').map(function() { 
    return this.value; 
    }).get().join('|'); 
    //now filter in column 2, with no regex, no smart filtering, no inputbox,not case sensitive 
    otable.fnFilter(frees, 2, false, false, false, false); 
} 

봐이 무엇을 볼 수 있습니다. 이처럼 HTML에서

전화를 :

<input onchange="filterme()" type="checkbox" name="free" value="0">0 
    <input onchange="filterme()" type="checkbox" name="free" value="1">1 

Plunker는 크게 문제가있는 위치를 이해하고 일을 해결하는 방법에 대한 빠른 응답을 제공하기 위해 다른 사람을 도움이 HTML과 JS 조각을위한 테스트 베드입니다 . 그것은 모든 키 누르기에 당신의보기를 만들고 html/js/css 편집자 같이 단순히 작동하고 굉장하다. 이 작동하는 동안 나는 과정에서 사용되는 파일 (index.html을하고 script.js)

을 발견하고 당신에게 방법에 대한 아이디어를 제공한다 Plunker의 왼쪽에서

Click here to see how I fixed your issue with Plunker

계속 진행하려면 무료 필터에 라디오 버튼을 사용하는 것이 좋을 것입니다.

조용한 복잡한 문제이므로 더 많은 설명이 필요한 경우 나에게 다시 올 수 있습니다.

+0

와우, 말문이 .. 나는 내 대본에 그것을 시험해 볼 필요가있다. – Sylnois

+0

나는 '자유'에 문제가있다. 나는 '0' 또는'1'을 포함하는 기록 된 데이터를 얻었으므로 그들을 보여줍니다. – Sylnois

+0

무슨 소리 야? 0과 1은 두 개의 입력으로 덮여 있습니다. 앞에서 말했듯이 Free/Not Free 또는 Free True/Free Not True를 반환하는 단일 체크 박스 중 하나를 사용하는 두 개의 라디오를 사용하는 것이 더 적합합니다. 너가 원하는게 그거야? 현재 설정에서 체크 표시는 모두 0과 1 값일 수 있습니다. 물론 모든 레코드가 반환됩니다. – mainguy