在php中施用FusionCharts
在php中使用FusionCharts作者:zccst
数据格式有setDataURL(srcUrl)和setJSONData(jsonStr)两种
用法在官方demo和document都有详细解释。
在实际需求中,直接参考官方资料还是挺方便的。
fileUrl = '../path/to/xx.swf'; //swf文件路径
srcUrl = 'http://url?a=1&b=2'; //向后端请求的url。
一、setDataURL(srcUrl)方式
//前端: var myChart = new FusionCharts(fileUrl, "myChartId", "600", "500"); myChart.setDataURL(srcUrl); myChart.render("outsource_sta_1"); //后端: $xml = ""; for($i = 1; $i < 6; $i++){ $data[] = array('label'=>'m'.$i, 'value'=>$i); $xml .= " "; print $xml;"; } $xml .= "
批注1:本质是data.xml,可以直接丢一个data.xml格式的文件,也可以是一个url,该url的返回值是xml格式的数据。
批注2:有可能乱码。在yii中使用会乱码。但在extjs中没有。
二、setJSONData(jsonStr)
又分两种情况:
第一种情况是new FusionCharts(...)在前端,仅jsonStr从后端获取
例如:
//前端: $.post(srcUrl,null,function(r){ var myChart = new FusionCharts(fileUrl, "myChartId", "600", "500"); myChart.setJSONData(r); myChart.render("outsource_sta_1"); },'json'); //后端: $data = array(); for($i = 1; $i < 6; $i++){ $data[] = array('label'=>'m'.$i, 'value'=>$i); } $chart = array(); $chart['palette'] = 2; $chart['caption'] = "平均处理时间统计"; $chart['xAxisName'] = "机型"; $chart['yAxisName'] = "平均处理时间"; $chart['showValues'] = 1; $chart['decimals'] = 2; $chart['formatNumberScale'] = 0; $chart['useRoundEdges'] = 1; $chart['showPercentValues'] = 1; $ret = array('chart'=>$chart,'data'=>$data); print json_encode($ret);
批注:$.post()的返回值是'json'类型。
第二种情况是所有都在后端,前端直接$(".outsource_content").html(r)
//前端: $.post(srcUrl,null,function(r){ $(".outsource_content").html(r); },'html'); //后端: $data = array(); for($i = 1; $i < 6; $i++){ $data[] = array('label'=>'m'.$i, 'value'=>$i); } $chart = array(); $chart['palette'] = 2; $chart['caption'] = "平均处理时间统计"; $chart['xAxisName'] = "机型"; $chart['yAxisName'] = "平均处理时间"; $chart['showValues'] = 1; $chart['decimals'] = 2; $chart['formatNumberScale'] = 0; $chart['useRoundEdges'] = 1; $chart['showPercentValues'] = 1; $ret = array('chart'=>$chart,'data'=>$data); $ret = json_encode($ret); $ret = self::generateChart('Column2D',$ret, 600,500, 'myid1', 'outsource_sta_1'); $ret = self::wrapScript($ret); print $ret; public static function wrapScript($scripts){ $html = '
PHP之友评论