如何将数据从PHP数组传递给Javascript

时间:2016-12-20 06:18:51

标签: javascript php jquery arrays

我正在尝试使用bootstrap-year-calendar,但我无法以正确的方式传递值。

我有一个包含数据的数组:

<?php

$data = array(
    array(
        "startDate" => "2016-1-4",
        "endDate" => "2016-1-4"
    ),
    array(
        "startDate" => "2016-1-8",
        "endDate" => "2016-1-8"
    ),
    array(
        "startDate" => "2016-1-16",
        "endDate" => "2016-1-16"
    )
);

?>

但我必须这样做:

<?php // I have here my $data array ?>

<div id="calendar"></div>

<script>

$(function() {  
    $('#calendar').calendar({
        dataSource: [
            {
                startDate: new Date(2016, 1, 4),
                endDate: new Date(2016, 1, 4)
            },
            {
                startDate: new Date(2016, 1, 8),
                endDate: new Date(2016, 1, 8)
            }
            ,
            {
                startDate: new Date(2016, 1, 16),
                endDate: new Date(2016, 1, 16)
            }
        ]
    });
});

</script>

如何将$ data数组传递给'datasource'变量?

3 个答案:

答案 0 :(得分:4)

使用json:

执行类似

的操作
<?php

$data = array(
    array(
        "startDate" => "2016-1-4",
        "endDate" => "2016-1-4"
    ),
    array(
        "startDate" => "2016-1-8",
        "endDate" => "2016-1-8"
    ),
    array(
        "startDate" => "2016-1-16",
        "endDate" => "2016-1-16"
    )
);
echo '<script>var data = '.json_encode($data).'</script>';
?>

<script>
$.each(data, function(i, v) {
  $.each(v, function(x, t) {
   data[i][x] = new Date(t);
  });
});
$(function() {  
    $('#calendar').calendar({
        dataSource: JSON.parse(data)
    });
});

</script>

Ps:您可能需要使用日期

进行微动

演示:http://jsfiddle.net/jnp2ssts/1/

答案 1 :(得分:0)

您可以执行类似页面加载的操作(如果它是PHP页面)或使用AJAX接收数据

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

然后简单地将此变量与数据源一起用作

dataSource : data

最终代码看起来像

var data = <?php echo json_encode($data); ?>;
$(function() {  
    $('#calendar').calendar({
        dataSource: data
    });
});

答案 2 :(得分:0)

是的,您可以使用json_encode()

<---Your array in php--->
<script type="text/javascript">

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

    for(var<your loop>){
        alert(jArray[i]);
    }

 </script>