【问题标题】:Exporting Fusion Charts to Image/PDF in php在 php 中将融合图表导出为图像/PDF
【发布时间】:2012-12-25 23:25:15
【问题描述】:

这里是工作融合图演示代码:

<?php

include("FusionCharts/FusionCharts.php");
?>
<HTML>
<HEAD>
    <TITLE>
    FusionCharts - Array Example using Single Series Column 3D Chart
    </TITLE>    
    <SCRIPT LANGUAGE="Javascript" SRC="FusionCharts/FusionCharts.js"></SCRIPT>
    <script type="text/javascript" language="JavaScript" src="FusionCharts/FusionChartsExportComponent.js"></script>
<script type="text/javascript" LANGUAGE="Javascript" SRC="FusionCharts/jquery.min.js"></script>
<script type="text/javascript" LANGUAGE="Javascript" SRC="FusionCharts/lib.js"></script>
<link href="FusionCharts/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
        function ExportMyChart() {
            var chartObject = getChartFromId('Results');
            if( chartObject.hasRendered() ) chartObject.exportChart();
     }
    </script>
    <style type="text/css">
    <!--
    body {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 12px;
    }
    -->
    </style>
</HEAD>
<BODY>

<CENTER>
<h2>FusionCharts Examples</h2>
<h4>Plotting single series chart from data contained in Array.</h4>
<?php
include("db_connect.php");
    //In this example, we plot a single series chart from data contained
    //in an array. The array will have two columns - first one for data label
    //and the next one for data values.

    //Let's store the sales data for 6 products in our array). We also store
    //the name of products. 
    //Store Name of grades for x axis
    $arrData[0][1] = "A";
    //send + char to xml file////
    $arrData[1][2] = str_replace('+', '%2B', 'A+');
    $arrData[2][3] = "A-";
    $arrData[3][4] = "B";
    $arrData[4][5] = str_replace('+', '%2B', 'B+');
    $arrData[5][6] = "B-";
    $arrData[6][7] = "C";
    $arrData[7][8] = str_replace('+', '%2B', 'C+');
    $arrData[8][9] = "C-";
    $arrData[9][10] = "D";
    $arrData[10][11] = str_replace('+', '%2B', 'D+');
    $arrData[11][12] = "E";
    $arrData[12][13] = "AB";
    $arrData[13][14] = "NE";
    $arrData[14][15] = "MC";

    //Store db data
    // Fetch all  records
    $sql = "SELECT grade, COUNT(*) 'No_Of_grades' FROM std_results WHERE course_code ='CSC1113' GROUP BY grade ORDER BY grade ASC";
    $result = mysql_query($sql) or die(mysql_error());
    while($ors = mysql_fetch_array($result)) {
    $grd=$ors['grade'];
    switch ($grd)
{
case "A":
  $arrData[0][16]=$ors['No_Of_grades'];
  break;
case "A+":
  $arrData[1][17]=$ors['No_Of_grades'];
  break;
case "A-":
  $arrData[2][18]=$ors['No_Of_grades'];
  break;
  case "B":
  $arrData[3][19]=$ors['No_Of_grades'];
  break;
  case "B+":
  $arrData[4][20]=$ors['No_Of_grades'];
  break;
  case "B-":
  $arrData[5][21]=$ors['No_Of_grades'];
  break;
 case "C":
  $arrData[6][22]=$ors['No_Of_grades'];
  break;
  case "C+":
  $arrData[7][23]=$ors['No_Of_grades'];
  break;
  case "C-":
  $arrData[8][24]=$ors['No_Of_grades'];
  break;
  case "D":
  $arrData[9][25]=$ors['No_Of_grades'];
  break;
  case "D+":
  $arrData[10][26]=$ors['No_Of_grades'];
  break;
  case "E":
  $arrData[11][27]=$ors['No_Of_grades'];
  break;
  case "AB":
  $arrData[12][28]=$ors['No_Of_grades'];
  break;
  case "NE":
  $arrData[13][29]=$ors['No_Of_grades'];
  break;
default:
  $arrData[14][30]=$ors['No_Of_grades'];
}

    }

    //set vlaue zero for othe grades..
    for($i=0;$i<15;$i++){
        if(!isset($arrData[$i][31])){
            $arrData[$i][32]=0;
            }
        }
    //Now, we need to convert this data into XML. We convert using string concatenation.
    //Initialize <chart> element
    $strXML = "<chart caption='Exam result for CSC113A ' numberPrefix='' formatNumberScale='10' xAxisName='Grades' yAxisName='No Of Students' bgColor='995699,FEEFFF' exportEnabled='1' exportAtClient='0' exportAction='download' exportTargetWindow='_blank' exportHandler='http://www.fusioncharts.com/ExportHandlers/PHP/FCExporter.php' id='myChart'>";
    //Convert data to XML and append
    foreach ($arrData as $arSubData)
        $strXML .= "<set label='" . $arSubData[1] . "' value='" . $arSubData[2] . "' />";

    //Close <chart> element
    $strXML .= "</chart>";

    //Create the chart - Column 3D Chart with data contained in strXML
    echo renderChart("FusionCharts/Column3D.swf", "", $strXML, "Results", 600, 300, false, false);
?>
<BR><BR>
<input type="button" value="Export My Chart" onclick="ExportMyChart()" />
</CENTER>
</BODY>
</HTML>

这段代码的输出是:!

然后我尝试编辑上面的代码以添加下载按钮以将这些图表导出为 imges/PDF 格式..但是这个下载按钮仍然不显示给我。需要的下载按钮是:

然后我需要像这样得到最终输出:

我想将此下载按钮添加到我的图表中...我该怎么做呢???请帮助我...

【问题讨论】:

    标签: php xml graph fusioncharts


    【解决方案1】:

    图表上的这个下载按钮仅在 JavaScript 图表中可用,您可能正在渲染 Flash 图表。

    有很多方法:

    1. 传递JavaScript图表alias而不是SWF名称作为renderChart的第一个参数:

      renderChart("Column3D" ...
      
    2. 您可以在 PHP 中在 renderChart 函数调用之前添加此代码:

       FC_SetRenderer( "javascript" );
      
    3. 在页面顶部添加一小行 JavaScript(在包含 FusionCharts.js 之后)

      FusionCharts.setCurrentRenderer('javascript');
      

    此外,您可以右键单击 Flash 图表以获取菜单。

    【讨论】:

    • 你能解释更多 frnd....无法理解你在说什么???因为我是这个融合图表的新手.....
    • docs.fusioncharts.com/charts/contents/…我想要这种下载按钮需要应用我的php代码????
    • 看,图表可以在任何一种客户端技术中呈现 - 使用 Flash Player 的图表和不使用 Flash Player 但仅使用 JavaScipt 代码的图表。 PHP 中的 renderChart 函数实际上有助于从 PHP 中提供图表渲染指令。如果您需要应用这种下载按钮,最简单的步骤是使用我的回答中所述的第 2 步。
    • 我把它放在 frnd...仍然无法工作下载按钮显示...什么 abt vmy 代码 frnd???是正确还是错误??我把这个放在哪里 :FC_SetRenderer( "javascript" ) ;: 在我的代码中??plzz help frnd
    • :plzz frnd seethis quetion & give me solution stackoverflow.com/questions/14035517/…
    猜你喜欢
    • 2012-12-07
    • 1970-01-01
    • 2011-12-25
    • 2017-06-16
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多