2014-04-27 50 views
0

我正在使用chart.js創建條形圖,但是我想要在條形圖中顯示的值是一個php數組,一個數組和一個數組。我如何將這些arays添加到條形圖中。目前我有這對於條形圖中的數據:如何使用php數據變量創建條形圖

ar barData = { 
labels : ["January","February","March","April","May","June"], 
datasets : [ 
    { 
     fillColor : "#48A497", 
     strokeColor : "#48A4D1", 
     data : [456,479,324,569,702,600] 
    } 

] 

}

我試着做以下,但它仍然沒有奏效:

<script type="text/javascript"> 
    var chartLabels= <?php echo $chartLabels; ?> 
    var chartValues= <?php echo $chartValues; ?> 
</script> 

我想更換「標籤」與一個php陣列,以及「數據」

+0

請使用搜索。這裏有很多像這樣的問題:[將php數組轉換爲Javascript](http://stackoverflow.com/q/5618925/367456) – hakre

回答

1

如果$ chartLabels或$ chartValues是數組,那麼您無法回顯它們。您可以將陣列內插爲js字符串,並將其作爲如下數據的值:

var barData = { 
    labels : ["January","February","March","April","May","June"], 
    datasets : [ 
     { 
      fillColor : "#48A497", 
      strokeColor : "#48A4D1", 
      data : <?php echo '['.implode(", ", $data).']'?> 
     } 
    ] 
} 

其中$ data是一個正常的php數組。

+0

,我可以爲「標籤」部分做同樣的事嗎?我試過了,但它似乎並沒有工作:/ 雖然數據工作! :) – user3506938

+1

了它到底 - , 感謝名單! – user3506938

0
<script type="text/javascript"> 
    var chartLabels= <?php echo $chartLabels; ?> 
    var chartValues= <?php echo $chartValues; ?> 
</script> 

奇怪了,這個代碼是行不通的。你是否在ready處理程序中使用了所有的JavaScript?另外,請注意,在獲取數據和繪製數據之前,應該聲明這些變量並賦值。

另一種方法來實現你想要的:

可以有使用Ajax請求。繪製圖之前,您將發送一個jax請求並從php服務器獲取json響應。它將包含鏈接到標籤的所有標籤和所有值。現在,你需要它來解析這個json並構建圖表。

閱讀getJSONparseJSON Java腳本功能。

你的PHP腳本將只產生2個數組,然後將它們合併成1個大數組和編碼它們。

$values = array(); 
// get values 
$labels = array(); 
// get labels 
$result = array($values, $labels); 
echo json_enocde($result); 

簡單:)

希望這會幫助你。

+0

抱歉,準備處理程序是什麼意思? 也這是使用數組的正確方法:「標籤:‘chartLabels’,」和「數據:‘chartValues’」 – user3506938

+0

有前途的JS,它說的js代碼來運行只有頁面加載。去谷歌上查詢。我不明白,你對陣列的問題。對值使用值數組名稱,對標籤使用數組名稱。 –