【问题标题】:Populate FusionCharts with XML data AJAX使用 XML 数据 AJAX 填充 FusionCharts
【发布时间】:2010-12-16 18:45:27
【问题描述】:

您好,我有一个使用 ajax 从 php 脚本获取 XML 文档的 js 文件。 XML 文件形成数据以绘制融合图表。我知道我得到的 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>

【问题讨论】:

    标签: javascript xml ajax fusioncharts


    【解决方案1】:

    看起来好像您有一个“chart1div”,即使它即 Div 未定义。 为此,您需要定义一个 Div。

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

    示例: var xdoc = XMLHttpRequestObject.responseText;

    :)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:
          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");
          

          谢谢.. 成功了!!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-27
            • 2018-01-19
            • 2012-11-27
            • 1970-01-01
            • 1970-01-01
            • 2018-05-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多