Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datatables来自json_的数据编码PHP数组_Php_Jquery_Arrays_Json_Jquery Datatables - Fatal编程技术网

Datatables来自json_的数据编码PHP数组

Datatables来自json_的数据编码PHP数组,php,jquery,arrays,json,jquery-datatables,Php,Jquery,Arrays,Json,Jquery Datatables,他们关于这方面的文档(datatables.net)似乎包含在一些大型PHP教程中。我找到的是: 我只想知道如何使用PHP生成一个数组,稍后将使用json_encode()和静态数据(无变量)来填充一个表,该表包含一些列标题和一些示例数据行。其中一些内容摘自上面的教程 <?php $output = array( "sEcho" => intval($_GET['sEcho']), //no idea what this is "iTotalR

他们关于这方面的文档(datatables.net)似乎包含在一些大型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>

$(文档).ready(函数(){
变量aDataSet=
$('#demo').html('');
$('#示例')。数据表({
“aaData”:aDataSet,
“aoColumns”:aoDataSet//这将是第二个json_编码PHP数组,设置为var aoDataSet
} ); 
} );
任何帮助都将不胜感激

编辑:在用户2657979答案的帮助下,我现在有了问题的答案。下面是从PHP数组填充DataTables标题和数据的答案

<?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>

var aoRowDefs=
var aoColumnDefs=
$(文档).ready(函数(){
$('#demo').html('');
$('#示例')。数据表({
“aaData”:aoRowDefs,
“aoColumns”:aoColumnDefs
} ); 
} );

我没有数据表的动态头,所以我在javascript的配置中定义了它们

"aoColumns": [{
        "sTitle": "Column 1"
    }, {
        "sTitle": "Column 2"
    }, {
        "sTitle": "Column 3"
    }, {
        "sTitle": "Column 4"
    }, {
        "sTitle": "Column 5"
    }]
$aoColumnDefs = array(
    array(
        'sTitle'   => 'Column 1',
        'aTargets' => array(0) 
    )
);
$aoColumnDefsEndcoded = json_encode($aoColumnDefs);
插件的创建者现在建议使用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中的配置

"aoColumns": [{
        "sTitle": "Column 1"
    }, {
        "sTitle": "Column 2"
    }, {
        "sTitle": "Column 3"
    }, {
        "sTitle": "Column 4"
    }, {
        "sTitle": "Column 5"
    }]
$aoColumnDefs = array(
    array(
        'sTitle'   => 'Column 1',
        'aTargets' => array(0) 
    )
);
$aoColumnDefsEndcoded = json_encode($aoColumnDefs);

下面是一个示例cms,它使用带有服务器端处理的数据表供您参考。请将其发布为答案并接受,而不是编辑问题。