Javascript 具有自定义json响应的Highcharts系列数据
一旦调用submit按钮,此图表将动态生成。图表以正确的序列名称呈现,但不显示任何行。 在我的Highcharts图表中有一个$get call,如下所示:Javascript 具有自定义json响应的Highcharts系列数据,javascript,ajax,ruby-on-rails-3,json,highcharts,Javascript,Ajax,Ruby On Rails 3,Json,Highcharts,一旦调用submit按钮,此图表将动态生成。图表以正确的序列名称呈现,但不显示任何行。 在我的Highcharts图表中有一个$get call,如下所示: series: [ <% {"WEB1" => Farm.WEB, "CAT1" => Farm.CAT, "ELK1" => Farm.ELK, }.each do |name, farm| %> { name
series: [
<% {"WEB1" => Farm.WEB,
"CAT1" => Farm.CAT,
"ELK1" => Farm.ELK,
}.each do |name, farm| %>
{
name: "<%= name %>",
pointInterval: <%= 1.day * 1000 %>,
pointStart: document.forms["myform"]["from"].value,
data: $.get("/farm/1", {
scope: "<%= name %>",
from: document.forms["myform"]["from"].value,
to: document.forms["myform"]["to"].value
}
})
},
<% end %>]
这一切都有效。get返回正确的散列。但海图不喜欢这样。有人对我如何正确格式化这个有什么建议吗?提前谢谢
编辑
我就是这么想的。。但是它不起作用
function(data){
var arr = new Array();
$.each(data, function(index,obj) {
arr.push(obj.y);
});setData(arr);
你只是做错了。这不是ajax的工作方式。AJAX是异步的,因此不返回任何内容,而是进行回调
data: $.get(...)
问题是,$.get不会立即返回任何内容,但也不会阻止或中断js处理,因此浏览器会继续执行下一个js块,甚至在ajax调用完成之前
这就是你通常的做法。首先进行$.get调用,完成后创建图表
$.get("/farm/1", {
scope: "<%= name %>",
from: document.forms["myform"]["from"].value,
to: document.forms["myform"]["to"].value
},function(data){
// use the data that was received to build the highchart
chart=....
}
});
$.get(“/farm/1”{
范围:“,
from:document.forms[“myform”][“from”].value,
收件人:document.forms[“myform”][“to”].value
},函数(数据){
//使用收到的数据构建highchart
图表=。。。。
}
});
谢谢,现在看起来是这样,但我如何访问数据值?数据:数据[0]或类似的东西不起作用……不管我怎么想!我刚刚使用了$。上面的每个函数都做了一个图表。addSeries(数据:arr)工作得很好!
$.get("/farm/1", {
scope: "<%= name %>",
from: document.forms["myform"]["from"].value,
to: document.forms["myform"]["to"].value
},function(data){
// use the data that was received to build the highchart
chart=....
}
});