[英]Turn PHP array into javascript array to pass to jQuery.flot for charting
我一直在逐步構建PHP頁面,因此我可以確認每個部分是否正常工作,等等。我還用JS中的罐頭數據傳遞給jQuery.flot,以創建堆積的條形圖。
基本上,我已經完成了所有工作,但是現在,我很困惑如何將PHP數組輸出為JS數組。 我所做的一切似乎都行不通。
我需要我的js數組顯示為:
var Tim_data1 = [
[Tim_gd(2014,1,1),13], [Tim_gd(2014,1,2),30], etc., etc.
];
“ Tim_gd”函數將傳遞的值轉換為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“ foreach”將上述數據輸出到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,這是否會影響傳遞給.plot函數的“選項”? 我似乎找不到與此相關的示例。 並不意味着它不存在-我只是還沒有找到它。
為什么不使用兩種語言都可以處理的JSON格式?
您可以執行以下操作:
<?php
$chartJSON = json_encode($chartdata);
?>
<script type="text/javascript">
json = "<?php echo $chartJSON;?>";
var TimData1 = JSON.parse(json);
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.