2014-11-09 3 views
1

서버 측 처리와 함께 Datatables를 사용하고 있습니다. 서버에 추가 매개 변수를 보낼 수 있지만 테이블을 처음으로로드 할 때 또는 필터링, 정렬 등으로 인해 테이블이 다시로드 될 때만 보내집니다. 추가 매개 변수를 서버로 보내고 싶습니다. 선택 필드에서 값을 선택할 때마다 이 동작을 어떻게 수행 할 수 있습니까? 미리 감사드립니다.Datatables 서버 측. 추가 매개 변수를 비동기 적으로 전송하십시오.

이 나는 ​​또한이 코드 조각으로 시도 내 datatables 스크립트

<script> 
$(document).ready(function() { 
    $('#tabla').dataTable({ 
     "sDom": '<"top"l>rt<"bottom"pi><"clear">', 
     "processing": true, 
     "serverSide": true, 
     "sPaginationType": "full_numbers", 
     "bProcessing": true, 
     "sAjaxSource": "server_side3.php?action=table_data", 
     "bDeferRender": true, 
     "aLengthMenu": [10, 25, 40], 
     "contentType": "application/json; charset=utf-8", 
     "dataType": "json", 

     "fnServerParams": function (aoData) { 
      aoData.push({ "name": "year", "value": $("#year option:selected").text() }); 
     }, 
     language: { 
     url: '//cdn.datatables.net/plug-ins/380cb78f450/i18n/Spanish.json' 
    } 

    }).columnFilter(); 

}); 
</script> 

입니다 :

"fnServerData": function (sSource, aoData, fnCallback) { 
      /* Add some extra data to the sender */ 
      aoData.push({ "name": "year", "value": $("#year option:selected").text() }); 
      $.getJSON(sSource, aoData, function (json) { 
      fnCallback(json) 
      }); 

그리고 내 html로 당신은 거의 다

<select id="year"> 
     <?php 
     echo '<option value="'.date(Y).' selected">'.date(Y).'</option>'; 
     for ($i=2005; $i < date(Y) ; $i++) { 
      echo '<option value="'.$i.'">'.$i.'</option>'; 
     } 

     ?> 
</select> 
+0

나는 fnServerData를 사용하려고한다고 생각합니다. 내 대답 좀 봐 : http://stackoverflow.com/questions/21704398/understanding-fnserverdata-in-datatables – mainguy

답변

4

- 방금 선택 목록의 값이 선택되면 fnDraw()에 전화를 추가해야합니다 :

$('#year').change(function (e) { 
     $('table#tabla').dataTable().fnDraw(); 
    }); 
+2

내가 몇 가지 할 수 ... 감사합니다! 당신은 춥습니다!, 당신은 내 하루를 구 했어요. 다시 감사합니다. – sms

관련 문제