How To Save More fusion Charts On Server With Single Button

拟墨画扇 提交于 2019-12-12 03:36:53

问题


I am trying to save graphs on server side. i was succeeded up to save one graph. but i am unable to save more than one graph. here i mentioned 2 graphs but nly one graph is going to save on server. how it can be ?

my code is

 <script type="text/javascript">
    var totalCharts = 2;


function exportCharts(exportType)
{

        for( var i = 0; i < totalCharts; i++ ) {
        var num = i+1;
        var id = "chart"+num+"Id";
        exportchart(exportType,id);


}
}

function exportchart(exportType,id)
{
var chart = FusionCharts(id);

        // Now, we proceed with exporting only if chart has finished rendering.
        if (chart.hasRendered() != true)
        {
                alert("Please wait for the chart to finish rendering, before you can invoke exporting");
                return;
        }

        // call exporting function
        chart.exportChart( {exportFormat: exportType} );


}

</script>

<p align="center">
    <input type="button" class="button" value="Export as PNG" onclick="exportCharts('PNG')" id="exportButtonPNG" />
  </p>

<div >
  <div id="average" style="text-align:center">Loading Chart... </div>
   <div id="overall" style="text-align:center">Loading Chart... </div>
  </div>

  <script type="text/javascript" >

        // Render the chart (See documentation for explanation of the codes below)
        //echo renderChart("FusionCharts/MSColumn3D.swf", "", $strXML3, "average", 1100, 350);
var chart2 = new FusionCharts("FusionCharts/MSColumn3D.swf", "chart1Id", "600", "400", "0", "1");                                       
        chart2.setXMLUrl("average.xml");
        chart2.render("average");
        var chart1 = new FusionCharts("FusionCharts/MSColumn3D.swf", "chart2Id", "600", "400", "0", "1");                                       
        chart1.setXMLUrl("overall.xml");
        chart1.render("overall");

  </script>

<!-- Google Analytics Tracker Code Starts -->
<script type="text/javascript">
// analytics
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost 
        + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
if (typeof(_gat) == "object") {
        var pageTracker = _gat._getTracker("UA-215295-3"); pageTracker._initData(); pageTracker._trackPageview();
}
</script>

How i can solve this?


回答1:


You may need to chain the call to exportChart function of each chart you have.

    var totalCharts = 2;

     (function () {

         var totalExported = 0,
             exportType;

            window.FC_Exported = function() {
                exportchart();
            };

            window.exportchart = function(exportFormat) {

                exportType = exportType || exportFormat || 'jpg';
                totalExported++ ;

                var chart = FusionCharts("chart" + totalExported + "Id");
                if (totalExported > totalCharts) {
                    return;
                }

                if (chart.hasRendered() != true) {
                    alert("Please wait for the chart to finish rendering, before you can invoke exporting");
                }   


                // call exporting function
                chart.exportChart( {exportFormat: exportType} );

            };

     }());  


来源:https://stackoverflow.com/questions/14498085/how-to-save-more-fusion-charts-on-server-with-single-button

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!