2011-08-10 31 views
1

我有一張Highchart散點圖,繪製了使用PHP腳本計算的數據。值通過jQuery .get函數傳遞給PHP腳本並返回到ExpressionEngine模板。我使用的PHP代碼是像這樣:將來自PHP腳本的返回數據傳遞給Highcharts數據[]塊?

printf("{x:'%3.2f',y:'%3.2f',fillColor:'#058DC7'},",$annualReturns[2] * 100.0,$annualSemiStDev[2]); 
    printf("{x:'%3.2f',y:'%3.2f',fillColor:'#50B432'},",$annualReturns[3] * 100.0,$annualSemiStDev[3]); 
    printf("{x:'%3.2f',y:'%3.2f',fillColor:'#ED561B'},",$annualReturns[4] * 100.0,$annualSemiStDev[4]); 

一旦回到ExpressionEngine模板,該數據會立即通過JavaScript函數(有的數據進入PHP腳本是拖着腳向Highcharts庫由另一個JavaScript函數編譯)創建Highcharts散點圖。

updateScatterChart(data); 

這就是我遇到我的問題的地方。該數據需要渲染,因爲這裏預期:

series: [{ 
      name: 'Custom', 
      data:[ DATA NEEDS TO LIVE HERE ] 
      }] 

爲了證實我得到正確的數據,立即updateScatterChart功能裏面,我在顯示一個警告窗口中的結果 - 使用alert(data) - 和我得到這個:

{x:'12.48',y:'3.52',fillColor:'#058DC7'} 
    {x:'34.82',y:'16.11',fillColor:'#50B432'} 
    {x:'8.32',y:'9.35',fillColor:'#ED561B'} 

其中,在我的data[]擋住了我的散點圖呈現爲預期在粘貼時。所以,我的數據很好。那粘貼代碼塊看起來是這樣的:

series: [{ 
      name: 'Custom', 
      data:[ 
       {x:'12.48',y:'3.52',fillColor:'#058DC7'} 
       {x:'34.82',y:'16.11',fillColor:'#50B432'} 
       {x:'8.32',y:'9.35',fillColor:'#ED561B'} 
       ] 
      }] 

我缺少的連接點是獲得了返回的數據直接輸出到data:[]塊。

我對PHP相當陌生,對JavaScript不太熟悉,但像這樣切換語言(將數據從PHP移動到JavaScript)仍然超出我的知識基礎。

+0

「移除的連接點我缺少越來越該返回的數據直接輸出到數據:[]塊而不」 對不起,沒有什麼? – Pelshoff

+0

啊,沒有從早先的草稿中剩下。編輯帖子。 –

回答

0
<?php 
    $data = array(
     (object)array('x'=>12.48, 'y'=>3.52, 'fillOClor'=>'#058DC7'), 
     (object)array('x'=>34.82, 'y'=>16.11, 'fillOClor'=>'#50B432'), 
     //more to come 
    ); 
?> 
series: [{ 
     name: 'Custom', 
     data: <?php echo json_encode($data)?> 
     }] 

注方括號從data

+0

我會給這個人一點點,它看起來很有希望。 –