2013-09-12 7 views
1

Их документация (datatables.net) в отношении этого, похоже, заправлена ​​внутри некоторого огромного учебника по PHP. Тот, который я нашел, находится здесь: http://datatables.net/development/server-side/php_mysqlДанные Datatables из json_encode PHP-массив

Все, что я хочу знать, это сделать массив с использованием PHP, который позже будет удален с помощью json_encode() со статическими данными (без переменных), чтобы заполнить таблицу, которая имеет несколько заголовков столбцов и несколько примерных строк данных. Некоторые из них были взяты из учебника выше.

<?php 
    $output = array(
     "sEcho" => intval($_GET['sEcho']), //no idea what this is 
     "iTotalRecords" => $iTotal, //probably total records 
     "iTotalDisplayRecords" => $iFilteredTotal, //Not sure, records per page? 
     "aaData" => array() //setting the data array for the rows 
     ); 
    $output['aaData'][] = //each row here, unsure of format 

    //Where do the column titles go, and the format for those? 
?> 
<script type="text/javascript"> 
    $(document).ready(function() { 

     var aDataSet = <?php echo json_encode($output); ?> 

     $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>'); 
     $('#example').dataTable({ 
      "aaData": aDataSet, 
      "aoColumns": aoDataSet //This would be a second json_encode PHP array, set to var aoDataSet 
     }); 
    }); 
</script> 

Любая помощь будет оценена по достоинству.

EDIT: С некоторой помощью от ответа user2657979 у меня есть ответ на мой вопрос сейчас. Ниже приведен ответ для заполнения заголовка DataTables и данных из массивов PHP.

<?php 
$aoColumnDefs = array(
    array(
     'sTitle' => 'Column 1', 
     'aTargets' => array(0) 
    ), 
    array(
     'sTitle' => 'Column 2', 
     'aTargets' => array(1) 
    ), 
    array(
     'sTitle' => 'Column 3', 
     'aTargets' => array(2) 
    ), 
    array(
     'sTitle' => 'Column 4', 
     'aTargets' => array(3) 
    ), 
    array(
     'sTitle' => 'Column 5', 
     'aTargets' => array(4) 
    ) 
); 

$aoRowDefs = array(
    0 => array(
     0 => "Row 1 data Column 1", 
     1 => "Row 1 data Column 2", 
     2 => "Row 1 data Column 3", 
     3 => "Row 1 data Column 4", 
     4 => "Row 1 data Column 5" 
     ), 
    1 => array(
     0 => "Row 2 data Column 1", 
     1 => "Row 2 data Column 2", 
     2 => "Row 2 data Column 3", 
     3 => "Row 2 data Column 4", 
     4 => "Row 2 data Column 5" 
     ), 
    2 => array(
     0 => "Row 3 data Column 1", 
     1 => "Row 3 data Column 2", 
     2 => "Row 3 data Column 3", 
     3 => "Row 3 data Column 4", 
     4 => "Row 3 data Column 5" 
     ) 
    ); 
?> 

<script type="text/javascript"> 

    var aoRowDefs = <?php echo json_encode($aoRowDefs); ?> 

    var aoColumnDefs = <?php echo json_encode($aoColumnDefs); ?> 

    $(document).ready(function() { 
     $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>'); 
     $('#example').dataTable({ 
     "aaData": aoRowDefs, 
     "aoColumns": aoColumnDefs 
     }); 
    }); 
</script> 

<div id="demo"> 
    <div id="example"> 
    </div> 
</div> 
+0

Просьба указать его как ответ и принять вместо вопроса редактирования. – Line

ответ

0

У меня нет динамических заголовков для моих Datatables, поэтому я определяю их в конфигурациях в javascript.

"aoColumns": [{ 
     "sTitle": "Column 1" 
    }, { 
     "sTitle": "Column 2" 
    }, { 
     "sTitle": "Column 3" 
    }, { 
     "sTitle": "Column 4" 
    }, { 
     "sTitle": "Column 5" 
    }] 

Создатель плагин теперь рекомендует использовать aoColumnDefs, а затем с указанием цели для столбца.

"aoColumnDefs": [{ 
     "sTitle": "Column 1", 
     "aTargets": [0] 
    }, { 
     "sTitle": "Column 2", 
     "aTargets": [1] 
    }, { 
     "sTitle": "Column 3", 
     "aTargets": [2] 
    }, { 
     "sTitle": "Column 4", 
     "aTargets": [3] 
    }, { 
     "sTitle": "Column 5", 
     "aTargets": [4] 
    }] 

aoColumnDefs позволяет более гибко, если определенные действия будут влиять на более чем один столбец, в котором можно указать более одного столбца.

Если, однако, заголовки столбцов будут динамическими, вы можете передать кодированный json массив в конфигурации в javascript.

$aoColumnDefs = array(
    array(
     'sTitle' => 'Column 1', 
     'aTargets' => array(0) 
    ) 
); 
$aoColumnDefsEndcoded = json_encode($aoColumnDefs); 
+0

вот пример cms, который использует данные с обработкой на стороне сервера для вашей справки. https://github.com/gencms/sample-gencms/ –

Смежные вопросы