2015-08-08 41 views
1

我有個關聯的PHP陣列(field_data)和我想使用json_encode功能把它傳遞給JS:$jArray = json_encode($field_data); 我recieving陣列中的JS:var irbrowser = <?php echo $jArray; ?>;但在JS當我想設定jArray中餅圖數據的值,它不呈現任何東西。通行證數據作爲一個js變量highchart

<?php 
     $jArray = json_encode($field_data); 
?> 

<div dir="ltr" id="container"> </div> 

<script> 
    var irbrowser = <?php echo $jArray; ?>; 

    $(function() { 
    $('#container').highcharts({ 
     chart: { 
      plotBackgroundColor: null, 
      plotBorderWidth: null, 
      plotShadow: false, 
      type: 'pie' 
     }, 
     title: { 
      text: 'Browser market shares' 
     }, 
     tooltip: { 
      pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' 
     }, 
     plotOptions: { 
      pie: { 
       allowPointSelect: true, 
       cursor: 'pointer', 
       dataLabels: { 
        enabled: true, 
        format: '<b>{point.name}</b>: {point.percentage:.1f} %', 
        style: { 
         color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' 
        } 
       } 
      } 
     }, 
     series: [{ 
      name: "Brands", 
      colorByPoint: true, 
      data: [{ 
       name: "IE", 
       y: irbrowser.IE 
      }, { 
       name: "Chrome", 
       y: irbrowser.Chrome, 
       sliced: true, 
       selected: true 
      }, { 
       name: "Proprietary or Undetectable", 
       y: irbrowser.Other 
      }] 
     }] 
    }); 
}); 

</script> 
+0

你可以試試firebug和console.log(irbrowser)嗎? – jezrael

+0

我認爲你的json格式不正確,你可以過去嗎? – LTasty

+0

irbrowser正在javascript中工作。因爲當我爲名稱(系列)設置irbrowser.IE時,它會在名稱標籤中顯示IE的正確值。 但yAxis它不起作用! –

回答

0

看看你的腳本

1號線停止PHP解釋

2號線嘗試一行PHP中的第幾行?

3號線啓動PHP解釋器

線4+您嘗試輸出原始的HTML而PHP部分內

?> 
     $jArray = json_encode($field_data); 
<?php 

<div dir="ltr" id="container"> </div> 

<script> 
    var irbrowser = <?php echo $jArray; ?>; 

嘗試

 $jArray = json_encode($field_data); 
?> 

<div dir="ltr" id="container"> </div> 

<script> 
    var irbrowser = <?php echo $jArray; ?>; 
+0

哦!對不起,我糾正了這一點。但問題依然存在。 –

1

我發現這個問題。 它應該被轉換爲Float。所以我使用parseFloate(irbrowser)函數。並將變量設置爲y。代碼

series: [{ 
     name: "Brands", 
     colorByPoint: true, 
     data: [{ 
      name: "IE", 
      y: parseFloat(irbrowser.IE) 
     }, { 
      name: "Chrome", 
      y: parseFloat(irbrowser.Chrome), 
      sliced: true, 
      selected: true 
     }, { 
      name: "Proprietary or Undetectable", 
      y: 0.5 
     }] 
    }]