2017-11-13 6 views
0

아래 코드로 ajax를 통해 datatable을 채 웁니다. 그러나 ajax return을 사용하여 열의 이름을 바꿔야합니다. return json으로 datatable의 열 이름을 바꾸는 방법?Datatable 제목 열 Ajax

var table = $('#my_table').dataTable({ 
    serverSide: true, 
    searching: false, 
    bAutoWidth:false, 
    bFilter: true, 
    bLengthChange: false, 
    responsive: true, 
    ajax: 'clientes.php', 
    dataSrc: 'data', 
    columns: [ {"sTitle":"#", "data":"client_id"},{"sTitle":"Name", "data":"client_name"},{"sTitle":"Contact", "data":"client"} ] 
}); 
+1

https://stackoverflow.com/questions/30476323/dynamically-set-table-titles-with-jquerys -datatables-plugin-get-titles-from-d – davidkonrad

답변

0

감사가 @davidkonrad하기 위해 해결

$.getJSON("clients.php, function(json) { 
     var keys = Object.keys(json['data'][0]), 
      columns = []; 
     for (var i=0;i<keys.length;i++) { 
      columns.push(
       { data: keys[i], title: keys[i] } 
      ); 
     } 
     var table = $('#my_table').DataTable({ 
      searching: false, 
      bAutoWidth:false, 
      bFilter: true, 
      bLengthChange: false, 
      responsive: true, 
      data : json.data, 
      columns : columns 
     }); 
    }); 

PHP

 $clients_sql = 
     " 
      SELECT 
       * 
      FROM 
       client 
     "; 
    $data = array(); 

    $result = mysqli_query($mysqli, $clients_sql); 
    while($row = $result->fetch_array(MYSQLI_ASSOC)) 
    { 
     $id   = $row['client_id']; 
     $name  = $row['client_name']; 
     $phone  = $row['client_phone']; 
     $data[] = array('ID'=> $id, 'Name'=> $name, 'Phone'=> $phone); 
    } 

    $results['data'] = $data; 
    echo json_encode($results);