Ошибка 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);  

Это работает здесь...

Другие вопросы по тегам