首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ajax的FusionCharts PHP

使用Ajax的FusionCharts PHP
EN

Stack Overflow用户
提问于 2013-04-09 07:16:30
回答 1查看 1.2K关注 0票数 0

我目前正在使用FusionCharts免费填充一些图表。

在main.php中:

代码语言:javascript
复制
<html>
<head>
    <script language="JavaScript" src="FusionCharts/FusionCharts.js" ></script>

    <script language="JavaScript">
        function ajax(divID)
        {
            if (window.XMLHttpRequest)
                xmlhttp=new XMLHttpRequest();
            else
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                    document.getElementById(divID).innerHTML=xmlhttp.responseText;
            }

            return xmlhttp;
        }

        function detailedChart(couID)
        {
            xmlhttp = ajax("detailedDiv");
            xmlhttp.open("GET", "getDetailedResult.php?couID=" + couID, true);
            xmlhttp.send(null); 
        }       
    </script>
</head>

<body>
    <?php
        $strDataURL = "GetResult.php";
        echo renderChart("FusionCharts/FCF_Column3D.swf", $strDataURL, "", "Chart1", 600, 300);
    ?>

    <div id="detailedDiv" align="center"></div>

</body>
</html>

在GetResult.php中:

代码语言:javascript
复制
if ($result)    
    $chart -> addDataFromDatabase($result, "TOTAL", "NAME", "", "JavaScript:detailedChart('##ID##')");

在GetDetailedResult.php中

代码语言:javascript
复制
<?php
    $chart -> newFusionCharts("Column3D", "900", "500");
    $chart -> setSWFPath("FusionCharts/");
    $chart -> setChartParams("caption=....");
    $chart -> addDataFromDatabase($result, "TOTAL", "NAME");
    $chart -> renderChart();
?>

现在的问题是,我希望使用ajax创建从GetResult到GetDetailedResult的钻取,但它将显示“图表”。而不是图表。如果我更改

$chart -> renderChart();to $chart -> renderChart(true);

它将向我展示“bgcolor=”。

为什么会发生这种情况,我该如何解决?还有其他更简单的方法可以通过ajax填充detailedChart吗?

百万谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-09 07:34:04

如果您进行调查,您将看到在您的HTML (一个DIV)和SCRIPT (一些要在DIV中呈现图表的JavaScript代码)的responseText中。

现在,当您将responseText设置为HTML元素的innerHTML时,HTML解析器将添加和显示HTML (DIV带有文本chart)。但是,它不执行SCRIPT部件(用于在DIV中呈现代替chart文本的图表)。

实现呈现的理想方法是执行SCRIPT

如果使用jQuery 阿贾克斯函数,这将得到很好的管理,类似于:

代码语言:javascript
复制
    function detailedChart(couID) {
        jQuery.ajax({
           url: "getDetailedResult.php?couID=" + couID,
           success: function(responseText) {
              jQuery("#detailedDiv").html(responseText);
           }
      });

    }  

注意:您需要在HTML的头部加载jquery文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15895651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档