我有以下代码将输出折线图,如下所示:

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

10-07 19:55
查看更多