简体   繁体   English

如何使用动态 header 和数据管理 Datatable

[英]How to manage Datatable with dynamic header with data

I am trying to manage Datatable for different header column names with data from my controller.I am sending data from my controller with table headers column name and table data value.I am getting columns in json in cal variable of drawCallback but can't get value of cal in columns. I am trying to manage Datatable for different header column names with data from my controller.I am sending data from my controller with table headers column name and table data value.I am getting columns in json in cal variable of drawCallback but can't get列中的 cal 值。

Here is my controller这是我的 controller

$columns = array('<input class="checkbox" type="checkbox" name="selectall" id="bnselectall">', __('SL'), __('Start date'), __('End Date'), __('Event Name'),__('Aquisition Channels'),__('Status'),__('Views'),__('No of Products Sold'),__('Revenue'));
                    $data[] = array($checkbox,$sr++,$period_start_date,$period_end_date,$event_title,$aquisition_channel,$status,$no_of_views,$count,$currency." ".$actual_rate);
$results['draw'] = $draw;
    $results['recordsTotal'] = $countAll;
    $results['recordsFiltered'] = $countAll;
    $results['data'] = $data;
    $results['columns'] = $columns;
    echo json_encode($results);
    exit;

My ajax code for datatable is here我的数据表的 ajax 代码在这里

dataUsersbehaviour = $('#dataUsersbehaviour').DataTable({
  "processing": dataTableConfig.processing,
  "serverSide": dataTableConfig.serverSide,
  "bFilter": dataTableConfig.bFilter,  
  "bInfo": dataTableConfig.bInfo,
  "autoWidth": dataTableConfig.autoWidth,
  "paging": dataTableConfig.paging,
  "dom": dataTableConfig.dom,
  "pageLength": dataTableConfig.pageLength,
  "pagingType": dataTableConfig.pagingType, 
  "bSort" : dataTableConfig.bSort,
  //"aDataSort": false,
  "language": {
    "url": dataTableConfig.language.url,
  },
  "ajax": {
    "url":$('meta[name="_baseurl"]').attr('content')+"usersbehaviour/data",
    "type":"post",
    "headers":{
      'X-CSRF-Token':$('[name="_token"]').attr('content')
    },
    "data": function(data) {
            data.search.params = {};
            data.search.params.from_date = $("#from_date").val();
            data.search.params.to_date = $("#to_date").val();
            data.search.params.user_behaviour_type = $("#user_behaviour_type").val();
            data.search.params.events_id = $("#events_id").val();
            data.search.params.product_type = $("#product_type").val();
            data.search.params.signup_type_id = $("#signup_type_id").val();
    },
  },
  "drawCallback": function (columns) { 
    // Here the response
    var response = columns.json;
    var cal = response.columns;
    //console.log(response.columns);
    //$.each(response.columns, function(index, value) {
    //console.log(index);
   // columnsData[index] = value;
    // Will stop running after "three"
    //return (value !== 'three');
    //});
    //columnsDataget = JSON.parse( columnsData );
    console.log(cal);
  },

  /*"columns": [
    { "title": "My column title" },
    {"title": "My column title"},
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null
  ]*/
});

My view page looks like我的视图页面看起来像

<table id="dataUsersbehaviour" class="table" style="width: 100%;">

Assuming cal contains row data for your data table, you can loop your data and dynamically create a row with Jquery.假设cal包含数据表的行数据,您可以循环数据并使用 Jquery 动态创建行。 Then append that rows to the table.然后 append 那行到表中。

inside success:内部成功:

for(var i = 0; i < cal.length; i++) {
   var $tblRow = $('<tr><td>' + cal[i]+'</td></tr>'); //correctly set your row
   $('#dataUsersbehaviour').append($tblRow);
}
                      

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM