2011-09-05 1 views
1

다음 작업을 수행하려고합니다. 백엔드에서 일부 데이터를 가져 와서 JQplot 촛대 차트로 바인딩합니다.jquery를 사용하여 데이터를 동적으로 가져 오는 JQplot 차트에 데이터를 할당하는 데 문제가 있습니다.

내가 이룬 것 :

  • 데이터는 백엔드
  • 데이터는 $의 갔지의 jQuery() 함수를 사용하여 조달되고 생성되고있다.

    데이터, 내가 변수에 바인딩하는 경우 수행하여 : 그래서를 heres 문제

그것은 바람처럼 작동
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 1 log screenshot

. 또한

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

을 나는 CONSOLE.LOG을 수행 할 때 내가

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

Case 2 log screenshot

를 사용하여 차트가 생성 될 때

는하지만, 난 콘솔에서 오류가 말을 얻을 CASE I에서는 배열로 가져옵니다. 하지만 CASE II에서는 정상적인 데이터처럼 보입니다. 어떤 도움이 필요한지는 잘 모르지만 나는 이것을 알았다.

누구든지 해결 방법을 알고 있습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

jqplot의 경우 데이터는 배열 형식이어야합니다. 당신은 아마도 당신이 2의 경우에 얻고있는 데이터의 형식이 무엇인지를 확인해야 할 것입니다. 배열 형식이 아니라면 $ .get 함수 안에서 배열 형식으로 변환 할 사용자 정의 코드를 작성해야 할 수도 있습니다.

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

EDIT :

첫번째 경우와 유사하게 배열 루프

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); 
} 

및 2를 사용하여 생성 될 수 Shortstick 차트는 데이터로부터 리턴 된 후에 만 ​​인출되어야 제안 get 메소드.

+0

동의합니다. 나는 그것을 알아 차 렸으며 그것을 지적했다. 나를 위해 jQuery에서이 함수를 사용할 수 있는가? – Shrayas

+0

사례 2에서 반환되는 데이터의 형식은 무엇입니까? –

+0

사실은 원본 텍스트 .. 내 질문을 스크린 샷으로 업데이트 해 드리겠습니다. – Shrayas

1

get이 비동기임을 기억하고 그래프를 초기화하기 전에 데이터로드가 완료되었는지 확인한 다음 async = false를 설정하여 인라인을 반환하는지 확인해야합니다.

그게 문제가 아니라면 데이터 구조가 반환되는 방법이 될 것입니다. json을 사용하여 배열 등을 보존하십시오.

+0

예 친구, 나는 비동기를 염두에 두겠다. 그리고 문제는 전체 데이터 구조를 반환 건배, @ Kavitha kg 나에게 대답을 준 :) – Shrayas

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]); 
} 
관련 문제