2017-02-27 89 views
1

我在codeigniter中有一个代码,并且我正在使用数据表,现在我想使用上面的复选框显示/隐藏列以让列隐藏或可能显示。我会在与这些代码控制器填充从我的数据库我的数据:datatable使用复选框显示/隐藏列

public function dataTable_report($date) { 
     $user = array('user_id' => $this->session->userdata['logged_in']['user_id']); 
     $myreport = $this->Adminreport_model->getreportDataDaily($user,$date); 

     $data = array(); 
     foreach ($myreport as $patient) { 
      $row = array(); 
      $row[] = $patient->check_up_id; 
      $row[] = $patient->patient_fname; 
      $row[] = $patient->patient_lname; 
      $row[] = $patient->patient_mname; 
      $row[] = $patient->check_up_date; 
      $row[] = $patient->clinic_name; 
      $row[] = $patient->bill_amt; 

      $data[] = $row; 
     } 
     $output = array( 
      "data" => $data, 
     ); 
     echo json_encode($output); 
    } 

现在这里是我的数据表当我检查我上面的复选框不隐藏,请帮助我: https://jsfiddle.net/2j6w9hqt/27/

回答

1

我不会推荐通过隐藏th元素来操纵列可视性。

改为使用Buttons extensioncolvis按钮。

$('#example').DataTable({ 
    dom: 'Bfrtip', 
    buttons: [ 
     { 
      extend: 'colvis', 
      columns: ':not(:first-child)' 
     } 
    ] 
}); 

查看this example的代码和演示。

我还通过添加复选框修改了列可视性按钮的默认外观,有关更多详细信息,请参阅this answer

+0

wowww。多好的回答先生。非常感谢你。 –

+0

你好先生为什么它不会出现在我身上..这是我的代码: function data_table_report(dateselected){(“#dataTables-report”)。dataTable()。fnDestroy(); 表= $( '#数据表报告')数据表({ “AJAX”:{ “URL”: “<?PHP的回声SITE_URL( 'patients_report/dataTable_report /')>” + dateselected, “类型“: ”POST“, }, 响应:真, DOM: 'Bfrtip', 按钮:[{ 延伸: 'colvis', 列: ':否(:第一子)' }] }); } –

+0

除了DataTables CSS/JS文件外,您还需要包含Buttons扩展的CSS/JS文件。 –