Ошибка OpenFlashChart #2032 с AJAX; но работает с php
Привет, я играю с OpenFlash-Chart, хотя некоторые php-графики отображаются правильно, я получаю следующую ошибку с моим последним кодом в javascript:
Open Flash Chart
IO ERROR
Loading test data
Error #2032
This is the URL that I tried to open:../../data-files/y-axis-auto-steps.txt
Я понял, что это общая ошибка-msg, которая появляется, например, если данные не отправляются должным образом в ofc.
Вызов происходит из этой функции:
function open_flash_chart_data(){
return JSON.stringify(data);
}
function plot_graph(checkedBoxes, theitems, thetrack, thedates, thevalues, trackCount){
top.restoreSession();
$.ajax({ url: 'graph_include.php',
type: 'POST',
data: { dates: thedates,
values: thevalues,
items: theitems,
track: thetrack,
thecheckboxes: checkedBoxes
},
dataType: "json",
success: function(returnData){
// place the raw graph data in the data variable
var data=returnData;
swfobject.embedSWF('open-flash-chart.swf',"graph"+trackCount, "650", "200", "9.0.0");
$('#graph'+trackCount).show();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText);
}
}); // end ajax query
}
Моя функция plot_graph()
вызывается с правильными переменными, но я получаю ошибку #2032
Мой обходной путь:
в graph_include.php
, который называется AJAX, я пишу echo $chart->toPrettyString();
в файл с именем "plot.json
", как это:
$fh = fopen("plot.json", 'w');
$chartjson = $chart->toPrettyString();
fwrite($fh, $chartjson);
fclose($fh);
Затем изменил обратный вызов успеха в этом, чтобы получить данные из plot.json
:
success: function(returnData){
// graph_include.php writes the $chart->toPrettyString();
// into file "plot.json" inside of the track_anything folder
// we just fetch these data from that file, as
// var data=returnData
// don't seem to work here
// (open-flash-chart won't find var data for some reason)
swfobject.embedSWF('open-flash-chart.swf',
"graph"+trackCount, "650", "200", "9.0.0","",{"data-file":"plot.json"});
Это прекрасно работает, и я получаю правильную диаграмму.
Итак, я думаю, ошибка 2032 как-то связана с моим вызовом ajax...
Может, кто-нибудь посмотрит, что я делаю не так с ajax, потому что мне нужен этот javascript / ajax, чтобы получить некоторые переменные, которые передаются в php...
1 ответ
Я понял, что это поможет:
вне функции ajax объявите переменную следующим образом:
var flashvars = {};
внутри AJAX-success-call напишите:
success: function(returnData){
// we need to set both
// data and flashvars.ofc
data=returnData;
flashvars.ofc = returnData;
swfobject.embedSWF('openflashchart/open-flash-chart.swf',
"graph"+trackCount, "650", "200", "9.0.0","",flashvars);
Это работает здесь...