Javascript highchart.js中的Ajax调用
大家好:-) 我想问一个关于在highchart.js库中调用Ajax的问题 我有一些通过Ajax返回的值,这些值基于我提供给后端的信息(这是一个MVC.NET项目),然后我想在每个div中使用gainChart类呈现一个新图表(我添加ID是为了其他目的,所以不要打扰它们:-)) 返回的数据与预期的一样(不同的字符串),但没有显示任何内容-仅显示图表的背景。有人能给我一个如何解决这个问题的线索,以及为了解决我的问题需要改变什么吗Javascript highchart.js中的Ajax调用,javascript,asp.net-mvc,highcharts,Javascript,Asp.net Mvc,Highcharts,大家好:-) 我想问一个关于在highchart.js库中调用Ajax的问题 我有一些通过Ajax返回的值,这些值基于我提供给后端的信息(这是一个MVC.NET项目),然后我想在每个div中使用gainChart类呈现一个新图表(我添加ID是为了其他目的,所以不要打扰它们:-)) 返回的数据与预期的一样(不同的字符串),但没有显示任何内容-仅显示图表的背景。有人能给我一个如何解决这个问题的线索,以及为了解决我的问题需要改变什么吗 提前谢谢 jQuery$.ajax方法调用不会返回此调用产生的数据
提前谢谢 jQuery
$.ajax
方法调用不会返回此调用产生的数据,因此无法编写myData=$.ajax()
。您必须使用success
回调来获取数据,然后使用它
因此,例如,不要写这个:
categories: [
$.ajax({
type: "POST",
url: "forex-copy-points-days",
data: { page: 0, perPage: 5, iterator: iteratorJs },
dataType: 'json',
async: false,
success: function (data) {
var daysArr = data.days;
JSON.stringify(daysArr);
categories = daysArr;
console.log(daysArr);
}
})
]
你应该这样写:
$.ajax({
type: "POST",
url: "forex-copy-points-days",
data: { page: 0, perPage: 5, iterator: iteratorJs },
dataType: 'json',
async: false,
success: function (data) {
// create graph from AJAX call results
var chart = new Highcharts.Chart({
xAxis: {
categories: JSON.stringify(data.days)
},
series: [{
data: JSON.stringify(balances.balances)
}]
});
}
});
谢谢你的回答。我有一个问题-我是否应该删除脚本开头的var chart=new Highcharts.chart代码,因为我将在ajax成功回调中进行渲染?谢谢,大家好。:)实际上我保留了它,但它已被移到成功回调的主体中。老实说,我建议您在尝试绘制图形之前先尝试熟悉jQuery和AJAX。例如,您可以使用
console.log()
来显示您从ajax调用中得到的结果。正如您在我的第一条评论中所看到的,我使用console.log()来显示ajax调用的结果。无论如何,我会尝试你的建议,并写一封反馈信。:-)嘿,这里,只需要添加一个iterrator,用这个类为每个div生成Highchart渲染,然后添加它。其他一切都按预期进行。谢谢你,梅托勒!我知道这是一个老生常谈的答案,但我正试图找出如何从.ajax查询中返回的数据集中获取特定数据。您的示例显示了数据.days
和余额.balances
,但我想知道如何获得更像数据.days
和数据.balances
(都来自数据
)
$.ajax({
type: "POST",
url: "forex-copy-points-days",
data: { page: 0, perPage: 5, iterator: iteratorJs },
dataType: 'json',
async: false,
success: function (data) {
// create graph from AJAX call results
var chart = new Highcharts.Chart({
xAxis: {
categories: JSON.stringify(data.days)
},
series: [{
data: JSON.stringify(balances.balances)
}]
});
}
});