2011-11-14 2 views
1

DataTablesIgnitedDatatables (CodeIgniter 라이브러리)을 사용하고 있습니다. 테이블은 문제없이 생성되지만 검색/필터를 사용하면 한 번에 하나의 열만 필터링 할 수 있습니다. "bServerSide"를 false로 설정하면 작동하지만 서버 측 기능은 손실됩니다. 예에서DataTables : 서버 측에있는 모든 열 검색

는,이 작동된다 http://datatables.net/release-datatables/examples/ajax/custom_data_property.html

를이 (서버 측) 아니지만 : http://datatables.net/release-datatables/examples/data_sources/server_side.html

이 서버 측 실행시 달성 할 수 없다?

이것은 (대체 데이터를 단축하고) 내 JSON 응답 :

{"sEcho":0,"iTotalRecords":45438,"iTotalDisplayRecords":45438,"aaData":[["abc","12345","[email protected]","","","2010-01-27 22:31:10","Edit<\/a> Delete<\/a>"],["abc2"," test123","[email protected]","","","2008-06-15 22:09:33","Edit<\/a> Delete<\/a>"]],"sColumns":"fname,lname,email,phone,cellphone,created,edit"} 

자바 스크립트 코드 :

$("#members").dataTable({ 
    "bProcessing": true, 
    "bServerSide": true, 
    'sAjaxSource': '<?php echo base_url();?>members/listener', 
    "fnServerData": function (sSource, aoData, fnCallback) { 
     $.ajax({ 
      "dataType": 'json', 
      "type": 'POST', 
      "url": sSource, 
      "data": aoData, 
      "success": fnCallback 
     }); 
    }, 
    "bLengthChange": false, 
    "aaSorting": [[ 0, "asc" ]], 
    "iDisplayLength": 15, 
    "sPaginationType": "full_numbers", 
    "bAutoWidth": false, 
    "aoColumnDefs": [ 
     { "sName": "fname", "aTargets": [ 0 ] }, 
     { "sName": "lname", "aTargets": [ 1 ] }, 
     { "sName": "email", "aTargets": [ 2 ] }, 
     { "sName": "phone", "sWidth": "80px", "aTargets": [ 3 ] }, 
     { "sName": "cellphone", "sWidth": "100px", "aTargets": [ 4 ] }, 
     { "sName": "created", "sWidth": "120px", "aTargets": [ 5 ] }, 
     { "bSortable": false, "sName": "edit", "sWidth": "115px", "aTargets": [ 6 ] } 
    ] 
}); 

감사합니다!

답변

1

글쎄, 서버 쪽을 필터링하면 SQL 쿼리를 통해 필터링된다는 것이고 이것은 게시 한 example에 기록 된 것입니다.

  • 필터링
  • 참고이 어떤 분야에 말씀으로 그것을
  • 단어를 수행하는 내장 DataTables 필터링과 일치하지 않습니다. 그것은 여기서 뭘 가능하지만, 매우 큰 테이블에
  • 효율성
  • 에 대한 우려,와 MySQL의 정규식 기능을 사용하면 당신이 원하는 것을 할 수있는 기본적

매우 제한 (정규 표현식은 모든 열을 일치)하지만 성능 서버 측면을 죽일 것입니다.

내가 일반적으로하는 일은 각 열에 필터를 제공하는 것입니다. 필터링해야합니다.

관련 문제