1

我正在尝试执行以下操作:从后端获取一些数据并将其与 JQplot 烛台图绑定。

我已经完成了什么:

  • 数据正在后台生成
  • 使用 jQuery 的 $.get() 函数获取数据。

那么问题来了:

数据,如果我通过执行以下操作将其绑定到变量:

CASE I_
ohlc = [['2011-01-03 09:30:00',325.7,325.99,324.82,325.39],['2011-01-03 09:35:00',325.44,326.74,325.4,326.46],['2011-01-03 09:40:00',326.54,327.38,326.38,327.23]];

案例一日志截图

它就像微风一样工作。

但是当我使用

CASE II_
$.get('MYSERVLET', function(data){
ohlc = data;
});

案例2日志截图

并生成图表,我在控制台收到错误消息:

Uncaught #<Object>
init
w.jqplot
(anonymous function)
jQuery.event.handle
jQuery.event.add.elemData.handle.eventHandle

此外,当我在 CASE I 中执行 console.log 时,我将它们作为数组获取。但在 CASE II 中,它看起来像正常数据。我不知道这是否有任何帮助,但我注意到了这一点。

有谁知道如何解决这一问题?我究竟做错了什么?

4

3 回答 3

1

对于 jqplot,数据必须是数组形式。您可能必须检查您在案例 2 中获得的数据格式是什么。如果它不是数组格式,那么在 $.get 函数中您可能需要编写一些自定义代码,将其转换为数组格式。

CASE II_
$.get('MYSERVLET', function(data){
var temp = data;
//code to convert data to array format
//populate ohlc.
});

编辑:

可以使用 2 个 for 循环生成类似于第一种情况的数组

ohlc=[];
for(int l1=0;l1<data.length;l1++)
{
var temp = [];
for(int l2=0;l2<data[l1].length;l2++)
{
temp.push(data[li][l2]);
}
ohlc.push(temp);
}

正如 Shortstick 建议的那样,只有在从 get 方法返回数据后才能绘制图表。

于 2011-09-05T10:45:01.750 回答
1

请记住 get 是异步的,请确保在初始化图形之前完成加载数据,您必须设置 async = false 以确保它返回内联。

如果这不是问题,那么它将是如何返回数据结构。尝试使用 json 来保留数组等。

于 2011-09-05T10:58:16.840 回答
0
var line1=[];
for( var j = 0; j < list.length; j++){//creates the rows in the table based on the amount of videos
    x = table.insertRow(-1);    //inserts the cells into the row
    x.insertCell(0).innerHTML = list[j][0];                             
    x.insertCell(1).innerHTML = list[j][2];         
    //x.insertCell(2).innerHTML = list[(j)][5];
    //x.insertCell(2);  
    line1.push([j,1]); 
}   
于 2013-01-31T20:30:35.623 回答