我現在有我的網頁上Highcharts散點圖具有以下結構:更新Highchart系列數據與格式化的AJAX返回
$(function() {
$('#container').highcharts({
/*chart options, etc... this does not change*/
series: [/*there is some default data here*/]
});
});
這個圖表的外觀和偉大工程。另外,我在頁面上有幾個複選框和一個按鈕。當按下按鈕時,我有一些jQuery查看選中的複選框,並將這些信息發送到一個PHP文件,該文件基於選中的複選框返回一個NEW數據系列。該代碼如下所示:
var Obj = {};
$('button').click(function(e) {
var tableIDs = $("#boxes input:checkbox:checked").map(function() {
return $(this).val();
}).get();
var idClicked = e.target.id;
Obj.tables = tableIDs;
$.ajax({
url: 'update.php',
type: 'post',
data: {
"points": JSON.stringify(Obj)
},
success: function(data) {
console.log(data); /*for testing*/
}
});
});
此代碼位於腳本的最後,並且位於我的highcharts函數之外。我已經徹底測試了AJAX,並且一切正常。 PHP的設置方式,AJAX的回報是以下格式:
{name: 'series1', data: [[...,...],[...,...],...]},
{name: 'series2', data: [[...,...],[...,...],...]}
不是一個數組,只是一個很長的字符串,有很多在它的數字(我把上面的兩行清晰) 。換句話說,它的格式完全符合我的Highchart的'series:'選項。我的PHP返回的系列數量取決於檢查哪個/多少個複選框。
所以,這裏是我的問題:什麼是用AJAX返回的新數據替換已經顯示在我的高圖上的默認數據的最佳方式?或者,默認數據是可選的,如果使這更容易,可以將其刪除。
這裏有很多類似的問題,但我似乎在爲我的問題採取其他人的解決方案。我看了一些直接更新解決方案,如rockStar和LeJared提出的那些解決方案,但我沒有任何運氣讓他們將舊數據更新爲新數據或插入任何數據。
我特別喜歡DemoUser提出的解決方案,基本上是將數據作爲變量傳遞給包裝好的highcharts函數。這裏是什麼,通常是這樣的:
function my_chart(data) {
$('#container').highcharts({
/*chart options, etc... this does not change*/
series: [ /*there is some default data here*/ ]
});
}
然而,當我做到這一點,它完全打破了我的圖表,我一直無法得到這個工作,並通過適當的。
任何建議/意見將不勝感激。
這部分新的數據嘗試設置它:'不是一個數組,只是一個很長的字符串,有很多在it'數 - 是問題。你可以返回數組(JSON)嗎?我的意思是,這是一個非常漂亮的字符串,但Highcharts需要一個對象來處理,而不是字符串:) –