1

您好我有一个使用 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>
4

4 回答 4

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");

谢谢..它有效!

于 2011-11-09T09:11:14.367 回答
0

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

于 2010-05-07T19:35:58.713 回答
0

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

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

示例:var xdoc = XMLHttpRequestObject.responseText;

:)

于 2009-11-17T07:07:33.573 回答
0

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

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

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

于 2010-11-27T06:29:09.653 回答