我现在有我的网页上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需要一个对象来处理,而不是字符串:) –