使用XML数据AJAX填充FusionCharts

时间:2009-11-15 12:14:45

标签: javascript xml ajax fusioncharts

您好我有一个js文件,它使用ajax从php脚本中获取XML文档。 XML文件形成绘制Fusion Chart的数据。我知道我正在获取XML数据,但FusionCharts不会绘制它。我非常感谢任何帮助,谢谢

(FusionCharts.js is included earlier in my script) 

if(XMLHttpRequestObject) {

XMLHttpRequestObject.open("GET", "chart.php?job="+job, true);

XMLHttpRequestObject.onreadystatechange = function() { 
if (XMLHttpRequestObject.readyState == 4 &&  XMLHttpRequestObject.status == 200) { 
var xdoc = XMLHttpRequestObject.responseXML;

     var chart1 = new FusionCharts("Pie3D.swf", "chart1Id", "400", "300", "0", "1"); 
 chart1.setDataXML(xdoc);
     chart1.render("chart1div");

chart.php生成此XML数据

<chart caption='ADI Chart Test ' >
  <set label='Driver' value='12.25' />
  <set label='Other Staff' value='223.21' />
  <set label='Equipment' value='0.00' />
  <set label='Additional Items' value='0.00' />
  <set label='Vehicle Fuel' value='0.00' />
  <set label='Accomodation' value='0.00' />
  <set label='Generator Fuel' value='0.00' />
</chart>

4 个答案:

答案 0 :(得分:1)

if(XMLHttpRequestObject) {
    XMLHttpRequestObject.open("GET", "chart.php?job="+job, true);
    XMLHttpRequestObject.onreadystatechange = function() {
        if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
            var xdoc = XMLHttpRequestObject.responseXML;
            var chart1 = new FusionCharts("Pie3D.swf", "chart1Id", "400", "300", "0", "1"); 
            chart1.setDataXML(xdoc);
            chart1.render("chart1div");

谢谢..它有效!!

答案 1 :(得分:0)

看起来你有一个'chart1div',即使它没有定义Div。 为此,您需要定义Div。

另外,尝试使用responseText代替responseXML。这里,前者返回一个字符串,而后者返回一个XML文档对象。

实施例: var xdoc = XMLHttpRequestObject.responseText;

:)

答案 2 :(得分:0)

“Pie3D.swf”是否与您正在使用的同一根目录中存在?

答案 3 :(得分:0)

尝试从chart.php返回XML作为字符串..... 并尝试以下代码。

FusionCharts.RenderChart("/Charts/FCF_Pie3D.swf", "", $strXML, "ResourceVsCO1", "400", "200", false, false);

strXML是字符串,包含从chart.ph返回的xml