我有以下代码将输出折线图,如下所示:
<script class="code" type="text/javascript">
$(document).ready(function(){
var line1=[['2008-08-12 ',14], ['2008-09-12 ',6.5], ['2008-10-12 ',5.7], ['2008-11-12 ',9], ['2008-12-12 ',8.2]];
var plot1 = $.jqplot('chart1', [line1], {
title:'Daily Sales',
axes:{
xaxis:{
renderer:$.jqplot.DateAxisRenderer
}
},
series:[{lineWidth:4, markerOptions:{style:'square'}}]
});
});
</script>
上面代码的输出是正确的,但是我想插入一个PHP循环从mysql中选择数据并将其insde
var line1
放置为数组所以我创建了一个测试代码,如下所示:
<script class="code" type="text/javascript">
$(document).ready(function(){
<?php
$date = date('Y-m-d');
for($i=1;$i<6;$i++){
$newdate = strtotime ( '+1 month' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
?>
var line1=[['<?php echo $newdate; ?> ',<?php echo $i ?>]];
<?php
$date = $newdate;
}
?>
var plot1 = $.jqplot('chart1', [line1], {
title:'Daily Sales',
axes:{
xaxis:{
renderer:$.jqplot.DateAxisRenderer
}
},
series:[{lineWidth:4, markerOptions:{style:'square'}}]
});
});
</script>
这将输出最后一个值,即2015-5-16和5,我想要的是将所有结果从1到5输出,并将日期从2014-12-16每月增加到2015-5-16。
我希望这是有道理的 !谢谢
最佳答案
您做错了。您不使用PHP将文本直接转储到Javascript代码块中。这是引入javascsript语法错误并杀死整个代码块的肯定方法。
您构建一个本机PHP结构(数组,对象等),然后对它进行json_encode()。
例如
<?php
$results = get_data_from_db();
$data = array();
while($row = fetch_row_from_result($results)) {
$data[] = array($row['foo'], $row['bar']);
}
?>
<script type="text/javascript">
var data_from_db = <?php echo json_encode($data); ?>;
</script>