[英]how could i send parameters to create my data in Open Flash Chart?
[英]jQuery + JSON + Open flash chart, how can I create a chart on the fly?
JS
SWFlocation = "open-flash-chart.swf";
getMyData = function()
{
$.post(
myJsURL,
{
passedval: 1234
},
function (returned_json) {
return returned_json;
},
"json"
);
}
swfobject.embedSWF(SWFlocation, "myChartDiv", "650", "200", "9.0.0", "", {"get-data":"getMyData"} );
使用firebug,如果我硬編碼返回的JSON,圖表工作正常。 但是,當我按上述方式請求數據時 - 即在頁面加載后,我收到2032錯誤。
getMyData方法實際上從PHP腳本請求數據,而PHP腳本又從請求數據和外部API(像flickr這樣的大數據庫)請求數據,因此如果我們當前沒有緩存結果,可能會有幾秒鍾的延遲。 也許我會以錯誤的方式解決這個問題?
你必須將swfobject.embedSWF()放入ajax回調中。
像這樣:
SWFlocation = "open-flash-chart.swf";
init_chart = function()
{
$.post(
myJsURL,
{
passedval: 1234
},
function (returned_json) {
swfobject.embedSWF(SWFlocation, "myChartDiv", "650", "200", "9.0.0", "", {"get-data":returned_json} );
},
"json"
);
}
init_chart();
只需使用$.ajaxSetup({async : false});
在你調用$.post();
例
function ajaxchart() {
$.ajaxSetup({async : false});
var chart = '';
var url = "data.php";
var data = '';
var callback = function(resp) {
chart = resp;
};
$.post(url, data, callback, 'text');
return chart;
}
$(function() {
$("#test").click(function() {
swfobject.embedSWF("open-flash-chart.swf", "my_chart", "350", "200", "9.0.0", "expressInstall.swf", {"get-data":"ajaxchart"});
});
});
只是一個猜測,因為我不使用Open Flash Chart,但由於你正在進行異步ajax調用,你的getMyData函數實際上並沒有返回json值(你定義的回調函數)。
嘗試預加載(可能在swf嵌入之前進行同步ajax調用?)數據並將其存儲在var中,然后讓你的getMyData函數簡單地返回該var。
在Javascript中,declair變量flashvars
和VAR data
是這樣的:
var flashvars = {};
var data;
另外,請確保您具有此功能,該功能由swfobject.embedSWF自動調用:
function open_flash_chart_data(){
return JSON.stringify(data);
}
現在轉到您的AJAX函數並更改您的AJAX-Success-call,如下所示:
success: function(returned_json){
// we need to set both
// data and flashvars.ofc
data=returned_json;
flashvars.ofc = returned_json;
swfobject.embedSWF(SWFlocation, "myChartDiv", "650", "200", "9.0.0", "",flashvars);
我遇到了類似的問題,調試成功回調中需要vars data
和flashvars
是很難的。 如果缺少這些變量(或function open_flash_chart_data()
),您將收到錯誤2032。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.