【问题标题】:Datatables serverside. Send extra parameters asynchronously数据表服务器端。异步发送额外参数
【发布时间】:2014-11-09 03:39:13
【问题描述】:

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

这是我的数据表脚本

<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>

【问题讨论】:

标签: jquery datatables server-side


【解决方案1】:

你就快到了 - 你只需要在选择列表中的一个值被选中时添加对 fnDraw() 的调用:

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

【讨论】:

  • 我可以说几件事...谢谢!你太酷了!,你拯救了我的一天,我希望你能得到好的结果。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 2015-12-07
相关资源
最近更新 更多