我一直在构建一个PHP页面,所以我可以确认每个部分正常工作,等等。我也在JS中有罐装数据传递给jQuery.flot来创建堆积条形图。< / p>
基本上,我已经完成了所有工作,但是现在,我很难知道如何将PHP数组输出到JS数组中。无论我做什么,根本无法发挥作用。
我需要我的js数组显示为:
var Tim_data1 = [
[Tim_gd(2014,1,1),13], [Tim_gd(2014,1,2),30], etc., etc.
];
&#34; Tim_gd&#34;函数将传递的值转换为unix日期/时间。此图表按日期绘制了一段时间内的数据。因此,js数组的每个元素都是Tim_gd(,,),]。由于数据量大,此图表将为每个月等创建
概述:
创建数组的PHP代码片段:
<?php
$chartdata = array();
.
.
.
$result2 = mysql_query( $query2 ) or die(mysql_error());
while ($row2 = mysql_fetch_array($result2)) {
$event_date = $row2['event_date']; // date returned as string, YYYY-MM-DD
$event_count = $row2['event_count'];
// Build up php array
$chartdata[$event_date] = $event_count;
}
我已经使用PHP&#34; foreach&#34;将上述数据输出到HTML表中,所以我知道我得到的值等我应该,并且可以使用PHP substr函数获取日期的组成部分以提取年,月,日。创建/输出javascript的代码如下:
<script type="text/javascript">
var TimData1 =[
<?php
foreach ($chartdata as $k => $v) {
$yr = substr($k,0,4);
$day = substr($k,5,2);
$mon = substr($k,8,2);
$HTML = <<< eof
[Tim_gd($yr,$mon,$day),$v],
eof;
}
?>
];
</script>
使用上面的PHP片段,我得到的所有输出都是:
<script type="text/javascript">
var TimData1 =[
];
</script>
没有数据输出....我也尝试过使用PHP echo也无济于事。我提前道歉,因为我知道这很简单,但是过去几天我一直在尝试解决多个问题。我已经困扰了几个小时了,而且似乎没有更接近解决方案。
那么,我做错了什么?而且我知道我将在js数组中使用尾随逗号来解决问题,以及我上面概述的方法。
或者有没有办法将JSON数据传递给jQuery.flot,这是否会影响&#34;选项&#34;传递给.plot函数?我似乎无法找到相关的例子。并不意味着它不存在 - 我还没有找到它。
答案 0 :(得分:0)
为什么不使用由两种语言处理的JSON格式?
你可以这样做:<?php
$chartJSON = json_encode($chartdata);
?>
<script type="text/javascript">
json = "<?php echo $chartJSON;?>";
var TimData1 = JSON.parse(json);
</script>