EXTJS 3 창에서 하이 차트를 사용하여 일부 데이터를 차트로 표시하려고합니다. 고정 된 데이터 배열을 사용하면 모든 작업을 수행 할 수 있지만 json을 반환하는 python cgi에서 가져온 데이터를 차트로 표시해야합니다.ExtJS 3 및 Highcharts, 데이터를로드하는 동안 JsonStore 문제가 발생했습니다.
query = "select timestamp, value from "+measure_table+" where id_resource = 280 and timestamp < '2011-07-13 03:59:00'"
#execute the query
cur.execute(query)
rows = cur.fetchall()
#create the empty json data rpeository to be filled in
json_root = { 'fields': ['timestamp', 'value'], 'data':[] }
for row in rows:
json_root['data'].append({'timestamp':str(row[0]), 'value':row[1]})
#spit out the json and we are done!
req.write(str(json_root))
을 그리고 이것은 내가이 데이터를로드하려고하는 JS입니다 : 파이썬 CGI 내 데이터 생성 방법 이 (조각 내가는 DB에 대한 연결을 생략 등)입니다
var jproxy = new Ext.data.HttpProxy({
url: 'the url where to find the cgi'
});
var jstore = new Ext.data.Store({
proxy: jproxy,
reader: new Ext.data.JsonReader({
idProperty: 'timestamp',
root: 'data',
fields: [
{name: 'timestamp', mapping: 'timestamp'},
{name: 'value', mapping: 'value'},
]
})
});
그런 다음 창과 차트를 만듭니다. 두 가지 질문이 있습니다. 첫 번째 질문은 매우 간단합니다.이 코드의 문제점은 무엇입니까? 불을 지르고 콘솔은 말한다 :
O가
를 정의되어 있지 않으면 (o.metaData) {EXT-모든 debug.js의 라인 26042에서
, 내가했습니다 디버그 스크립트 중 하나 내 HTML 헤더에 포함되어 있습니다. 창이 이미 생성되었지만 여기에는 차트가 없습니다. 어떤 오류가 있습니까? 내가 큰/* .... */프록시 및 스토어의 생성 오류가 사라지면, 그래서 문제가 거기에 있어야 코멘트. 편집 : 나는이 문제를 해결했습니다. 잘못된 기능으로 저장소를로드했습니다 .jstore.load() 대신 jstore.loadData()를 사용했습니다. 내 fault..sorry
두 번째 질문은 다음과 같습니다. :이 코드 (다음 코드)가 jsonstore의 하이 차트로 데이터를 차트 화하는 올바른 방법입니까? 어떤 답변
xField: 'timestamp',
store: jstore,
series: [{
yField: 'value'
}]
}
많은 많은 감사를 (작동 아마 그것을 게시 할 수 유용하지의 원인 우리는 차트 생성 내에있는, 내가 '전체 코드를 게시하지 않습니다)!
편집 : 나는 데이터의 로딩을 고정 후 새로운 문제 :
too much recursion
jqextend(),DanaI...xtjs.js (riga 81)
merge(),DanaI...xtjs.js (riga 92)
Chart(),DanaI....src.js (riga 3922)
options = Object { chart={...}, title={...}, altri elementi...}
callback = undefined
draw(),DanaI...hart.js (riga 229)
call(),DanaI...ebug.js (riga 1547)
, copy);
이 불을 지르고 콘솔 output..too 많은 재귀입니까? 재귀? 내 코드에서 어떤 재귀 함수도 사용하지 않고있다.
파이썬 CGI에 의해 주어진 JSON은 정확합니다. 다른 응용 프로그램 (그리드)에서 사용하고 모든 것이 올바르게 작동합니다. (동일한 프록시 및 저장소도 사용하므로 문제가 무엇인지 알 수 없습니다. .) – powder
아주 단순한 경우에''dict .__ str__''은 유효하지 않은 JSON을 생성 할 것이므로 (예를 들어, 값이 None 인 경우) json/simplejson을 사용해야합니다. 하이 차트 문제에 관해서는 알지 못하지만, 자바 스크립트 리터럴을 사용하여 데이터를로드했습니다. – codeape
그래, 고마워, 지금 json에 관한 몇 가지 문서를 읽을거야. – powder