如何在change funtion jquery上重新加载dataTable并获取值选择选项?

时间:2017-04-10 12:38:25

标签: javascript jquery datatable datatables

如何在change funtion jquery上重新加载dataTable并获取值选择选项?

在第一次加载时我将var month设置为值0,但是当选择更改时我想获得所选选项的值并将var month设置为id =" month_report"的值。怎么做?

这是我的代码:



$(document).ready(function(){

    var month = 0;
    var table = $('#dataTables').DataTable({
        responsive:true,
        ajax : {
            url : 'dashboard/report?month='+month,
            data : function(data){
                return data;
            }
        },
        "searching": false,
        columns : [
            {
                data: 'customer',
                searchable : false
            },
            {
                data: 'age',
                searchable : false
            },
            {
                data: 'pbw',
                searchable : false
            },
            {
                data: 'per',
                searchable : false
            },
            {
                data: 'ipo',
                searchable : false
            }
        ]
    });

    $('#month_report').change( function() {
        var month = $(this).find('option:selected').val();
        table.ajax.reload().draw();
    });

});

<select name="month" id="month_report">
    <option value="" selected="">Pilih Bulan :</option>
    <option value="1">Januari</option>
    <option value="2">Februari</option>
    <option value="3">Maret</option>
    <option value="4">April</option>
    <option value="5">Mei</option>
    <option value="6">Juni</option>
    <option value="7">Juli</option>
    <option value="8">Agustus</option>
    <option value="9">September</option>
    <option value="10">Oktober</option>
    <option value="11">November</option>
    <option value="12">Desember</option>
</select>
&#13;
&#13;
&#13;

5 个答案:

答案 0 :(得分:0)

以下行将为您提供选定的下拉列表,其值为id = month_report

var month = $("#month_report").val();

答案 1 :(得分:0)

在你的桌子(年份)中添加1个coloumn,然后在你的下拉列表evnt listener中添加

table.columns(indexOfYourYearCol).search($("#month_report").val()).draw();

reference = https://datatables.net/examples/api/regex.html

答案 2 :(得分:0)

$("#month_report").on('change', function() {
    if ($(this).val() > 0){
        var month = $(this).val();
        table.ajax.url('dashboard/report?month='+month);
        table.ajax.reload();
    } 
});

答案 3 :(得分:0)

重新加载数据表的数据

尝试代码

$('#month_report').change( function() {
    var month = $(this).val();
    table.ajax.url('dashboard/report?month='+month).load();});

答案 4 :(得分:0)

将您的ajax调用置于“ .change(function(){})”下,调用您的“ action”方法,并最终根据情况绘制数据表。

更多,它会像这样:

    $('#month_report').change( function() {
        var month = $(this).find('option:selected').val();
        $.ajax({
        type: 'GET', //'POST'
        url: '@Url.Action("your_action")',
        data: { ID: month },
        success: function (data) {

            //drawing your datatable here....
            $('#dataTables').DataTable({
                 destroy: true,
                 responsive:true,
                 data: data,
                 searching: false,
                 columns : [
                    {data: 'customer', searchable : false},
                    {data: 'age', searchable : false},
                    {data: 'pbw', searchable : false},
                    {data: 'per', searchable : false},
                    {data: 'ipo', searchable : false}]
             });
          }
      });

这是my issue