2017-04-20 28 views
1

當我們通過靜態數據列表如[{category":"a","data:"3"},"category":"b","data":"1"}] 那麼它的工作正常,但是當我們在數據提供者部分中傳遞頁面url像{"url": "abc.php","format": "json"}然後圖表不填充。上午圖表餅圖不讀取json文件數據?

這是我的代碼:

var chart = AmCharts.makeChart("chartdiv", { 
    "type": "pie", 
    "dataProvider":{ " 
     url": "abc.php", 
     "format": "json" }, 
    "labelRadius": -35, 
    "labelText": "[[percents]]%", 
    "titleField": "category", 
    "valueField": "column-1", 
    "allLabels": [], 
    "balloon": {}, 
    "legend": { 
     "enabled": true, 
     "align": "center", 
     "markerType": "circle" } 
    }); 

任何解決方案?

+0

歡迎來到SO。你可以粘貼你的代碼,所以我們可以看到你到目前爲止嘗試過的嗎? –

回答

1

使用與 「靜態」 數據amCharts

如果你有 「靜態」 數據,使用dataProvider設置,就像這樣:

var chart = AmCharts.makeChart("chartdiv", { 
    "type": "pie", 
    "dataProvider": [{ 
    "category": "a", 
    "data": 3 
    }, { 
    "category": "b", 
    "data": 1 
    }], 
    // ... 
}); 

使用amCharts與AJAX數據

如果你想要使用AJAX加載數據,一種方法是使用amCharts的Data Loader插件。

確保包括它在你的HTML:

<script src="amcharts/plugins/dataloader/dataloader.min.js" type="text/javascript"></script> 

離開了dataProvider設置,並使用dataLoader代替。

var chart = AmCharts.makeChart("chartdiv", { 
    "type": "pie", 
    "dataLoader": { 
    "url": "abc.php", 
    "format": "json" 
    }, 
    // ... 
}); 

abc.php文件應當返回有效的JSON,像這樣:

[{ 
    "category": "a", 
    "data": 3 
}, { 
    "category": "b", 
    "data": 1 
}] 

你可以找到的數據加載器插件這裏選項的完整列表:https://www.amcharts.com/kbase/using-data-loader-plugin/

+0

感謝robbert dataLoader適合我。 – Coder

+0

如果我通過「dataProvider」:[{「column-1」:「10788」,「column-2」:「17466」}] static,那麼它爲我工作,但是當我傳遞「dataProvider」時:數據動態數據,然後圖表不填充。 請幫忙 – Coder

+0

從特定文件加載數據時使用「dataLoader」而不是「dataProvider」。 – Robbert