2013-08-05 93 views
0

我只需要添加這個簡單的PHP數組即可在X軸上顯示。它不想顯示我的內容,我不明白爲什麼。如何將PHP數組添加到Highcharts的JS數組中

<!DOCTYPE HTML> 
<html> 
    <head> 
     <?php 
     $array = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); 
     ?> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
     <title>Highcharts Example</title> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"type="text/javascript"></script> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
     <script type="text/javascript"> 


$(function() { 
    js_array = new Array(<?php echo json_encode($array) ?>); 
     $('#container').highcharts({ 
      title: { 
       text: 'Monthly Average Temperature', 
       x: -20 //center 
      }, 
      subtitle: { 
       text: 'Source: WorldClimate.com', 
       x: -20 
      }, 
      xAxis: { 
       categories: js_array 
      } 
+0

不會解決你的問題,但你應該使用'[]'而不是'new Array' - 後者創建一個不需要的對象包裝器 – sgroves

+1

試試'js_array = JSON.parse('<?php echo json_encode($ array )?>');' – user1477388

+0

我沒那麼幸運。我仍然得到一個空白的屏幕。 – Tabias

回答

3

我們似乎這裏的問題過於複雜...

改變這一點:對於

  js_array = new Array(<?php echo json_encode($array) ?>); 

      ... 

      xAxis: { 
       categories: js_array 
      } 

這樣:

xAxis: { 
    categories: <?php echo json_encode($array); ?> 
} 
+0

現在一切正常。謝謝。 – Tabias

0

JSON對象與js數組不同。您需要先解析代碼。 JSON.parse()或eval()可能有助於解析。

js_array = JSON.parse('<?php echo json_encode($array) ?>'); 

爲@ user1477388正確評價

+0

+1,但'eval'是不必要的。使用'JSON.parse',這是爲這種事情設計的。 – sgroves

+0

我知道,但eval並不像大家想象的那麼糟糕。爲了防止JSON.parse()不可用(它只支持* most *瀏覽器),eval()的工作方式也是一樣的。 – devdot

+0

如果'JSON.parse'不可用,標準做法是隻包含crockford的json2.js庫。對於這種情況,'eval'可以正常工作(因爲沒有用戶輸入),但推薦它作爲一個通用的解決方案是**不是一個好主意。 – sgroves

1

試試這個。

var js_array = <?php echo json_encode($array); ?>; 
+0

它不會幫助,你不能直接使用JSON編碼的字符串。你需要先解析它們 – devdot

+0

沒有運氣,仍然變黑屏。 – Tabias

+0

將php數組添加到js後,您是否嘗試檢查數組中的值?它也可能是其他一些問題。嘗試console.log(js_array),看看天氣的價值在那裏 – Dilantha

0

它與我的工作就像這樣類別

categories: [<?php for($i = 0; $i < count($name); $i++){ echo "'".$name[$i]."'"; echo ",";} ?>], 

數據

data: [<?php echo join($age, ',') ?>] 

注意$ name是一個字符串數組$年齡是一個整數數組。另外請記住,當我在同一頁面中嵌入php,Sql查詢時,此代碼與我一起工作。