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

如何将数据从PHP数组传递到Javascript,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我试图使用引导年份日历,但无法以正确的方式传递值 我有一个数组,其中包含以下数据: <?php $data = array( array( "startDate" => "2016-1-4", "endDate" => "2016-1-4" ), array( "startDate" => "2016-1-8", "endDate" => "2016-1-8" ),

我试图使用引导年份日历,但无法以正确的方式传递值

我有一个数组,其中包含以下数据:

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

$(函数(){
$(“#日历”)。日历({
数据源:[
{
起始日期:新日期(2016年1月4日),
结束日期:新日期(2016年1月4日)
},
{
起始日期:新日期(2016年1月8日),
结束日期:新日期(2016年1月8日)
}
,
{
起始日期:新日期(2016年1月16日),
结束日期:新日期(2016年1月16日)
}
]
});
});
如何将$data数组传递给'datasource'变量?

使用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>

$。每个(数据、功能(i、v){
$。每个(v,函数(x,t){
数据[i][x]=新日期(t);
});
});
$(函数(){
$(“#日历”)。日历({
数据源:JSON.parse(数据)
});
});
附言:你可能需要稍微调整一下日期


演示:

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

var data = <?php echo json_encode($data); ?>;
最终的代码看起来像

var data = <?php echo json_encode($data); ?>;
$(function() {  
    $('#calendar').calendar({
        dataSource: data
    });
});
var数据=;
$(函数(){
$(“#日历”)。日历({
数据源:数据
});
});

是的,您可以使用
json\u encode()


var-jArray=;
for(var){
警报(jArray[i]);
}

使用json,json是您的朋友可能的重复,感谢您的回答。我试过这个方法,但不起作用。我认为问题在于我将日期从PHP传递到javascript的方式。当我使用javascript数组时,它工作得很好。但是在这种情况下,我不知道如何将PHP日期转换为javascript。@madlin
数据源
应该是一个数组,而不是数组string@azad是madalin不是madlin我已经更新了我的答案@madalinivascu@SergioJerezConde看见
var data = <?php echo json_encode($data); ?>;
$(function() {  
    $('#calendar').calendar({
        dataSource: data
    });
});
<---Your array in php--->
<script type="text/javascript">

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

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

 </script>