数据表服务器端。 异步发送额外参数

我正在使用Datatables进行服务器端处理。 我可以向服务器发送额外的参数,但只有在第一次加载表时或者由于过滤,排序等重新加载表时才会发送它们。我希望将额外的参数发送到服务器每次我从选择字段中选择一个值。 我怎样才能实现这种行为? 提前致谢。

这是我的datatables脚本

 $(document).ready(function() { $('#tabla').dataTable( { "sDom": 'rt', "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(); } );  

我也试过这段代码:

  "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

  <?php echo ''.date(Y).''; for ($i=2005; $i < date(Y) ; $i++) { echo ''.$i.''; } ?>  

你几乎就在那里 – 你只需要在选择列表中的值时添加对fnDraw()的调用:

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