我正在尝试使用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'变量?
答案 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:您可能需要使用日期
进行微动答案 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>