我正在研究highchart.I遇到了一個問題,我動態加載的類別數據和系列數據沒有顯示出來。這是我的代碼。Highcharts系列和類別不會從ajax請求動態添加
function loadChart() {
var categories = [];
var trend_series = [];
$.ajax({
type:'POST',
url : '/trends.php',
dataType: 'json',
async : 'false',
data: { date: d, item_name: item },
success: function(data) {
$.each(data, function(key, val) {
categories.push(key);
trend_series.push(parseFloat(val));
});
},
error: function(data) {
//alert(data['responseText']);
}
});
$(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line'
},
xAxis: {
categories: {}
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
chart.xAxis[0].setCategories(categories);
chart.addSeries({
name: 'App Summary',
data: trend_series
});
});
}
我從另一個文件中調用loadChart()
。
我注意到的一個主要問題是類別和trend_series(這些是數組)在highchart函數內是空的。但它在ajax函數調用中不是空的。我如何將這些值傳遞給highchart函數或者是否有任何其他方法來實現這一點。
謝謝您的回覆!我已經嘗試過你的解決方案。在ajax成功函數裏面,我添加了這兩行代碼var chart = new Highcharts.Chart(); \t \t \t \t chart.xAxis [0] .setCategories(categories,true); chart.series [0] .setData(trend_series,true); ..我已經把類別值推入類別數組。在這之後,它也不能正常工作。讓我知道這是不是正確的。 – Anish
你可以爲chart,categories和trend_series做一些console.log嗎?你在上面的例子中聲明的東西的方式似乎有點不正確,因爲你在函數內部有一個jQuery初始化調用。通常情況相反。一個jsfiddle會很好。 –
當我做一個console.log(類別)裏面的ajax函數,它給出了結果(我的意思是數值)。但是,當我在highchart函數內執行相同的console.log(類別)時,它顯示的是空數組。有沒有辦法將該變量傳遞給highchart函數。我已經將該變量聲明爲全局變量。 – Anish