在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 'm'.$i, 'value'=>$i);    $xml .= ;}$xml .= ;print $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 '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 '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 = ';    return $html;}public static function generatechart($type, $data, $width=0, $height=0, $myid='', $div_id=''){    if(!$type || !$data){        return '';    }    $width = intval($width)?intval($width):800;    $height = intval($height)?intval($height):400;    $width = $width<600?600:$width;    $height = $heightbaseurl . /resources/fusion/{$type}.swf;    $mychartid = $myid . 'a';    $script = <$ret.$ret2);
批注1:100的位置可以放置任意负责的数据,而且还可以v1,v2等等。
批注2:此时$.post()的返回值是'json'类型。这个必须强调。
   
 
   