通过ajax获取图像失败

时间:2012-09-03 11:48:29

标签: jquery ajax codeigniter jpgraph

您好我使用Jpgraph进行报告,并且我使用Codeigniter Ajax-Jquery-Json。这是我的情况:

图片未显示在浏览器中,我在Firebug控制台中收到此响应:  编码图像和不可见的字符

代码:

控制器:

function RapportByRegion()

{
    $this->load->model('rapport');
    $item = trim($this->input->post('variable'));
    //$array = array('result' => $item);
    header('Content-Type: application/json',true);

       $data = array();
        $casregion = $this->rapport->RapportByRegion($item);
        $casregionlegende = $this->rapport->RapportByRegionLegende($item);

        $graph = $this->jpgraph->Reporting($casregion,'Nombre de cas par structure',$casregionlegende);
        $graphTempDirectory = 'temp';

        $graphEnterName = 'casregion.png';
        $graphFileLocationE = $graphTempDirectory . '/' . $graphEnterName;
        $graph->Stroke('./' . $graphFileLocationE);
        $data['graph4'] = $graphFileLocationE;
        echo json_encode($data);

}

Jpgraph类:

class Jpgraph {

    function Reporting($ydata, $title, $legends) {
        require_once "jpgraph/jpgraph.php";
        require_once "jpgraph/jpgraph_pie.php";
        require_once "jpgraph/jpgraph_pie3d.php";

        $graph = new PieGraph(500, 500);
        $graph->SetShadow(true,5,'red');
        $graph->legend->SetShadow('darkgray@0.5');
        $graph->title->Set($title);
        $graph->title->SetFont(FF_FONT1, FS_BOLD);
        $graph->legend->Pos(0.12,0.89,"right","top");
        $graph->img->SetMargin(60,80,30,40);

        $plot = new PiePlot3D($ydata);
        $plot->SetLabelType(PIE_VALUE_ABS);
        $plot->value->SetFormat('%d Cas');
        $plot->ExplodeSlice(4);
        $plot->SetLegends($legends);
        $graph->legend->SetPos(0, 0.15);
        //$graph->legend->SetSize(0.10);
        $plot->SetSize(0.25);
        $plot->SetCenter(0.5);
        $graph->Add($plot);
        return $graph;
    }

}

Jquery代码:

$(document).ready(function() {
$( '#region').change(function(){
    var regionid = $('#region').val();

        if (regionid != ""){
            var variable_de_test = regionid;
        var post_url = "/index.php/report/RapportByRegion/" + regionid;
            $.ajax({
               type: "POST",
               dataType: "json",
               url: post_url,
               data :{variable : variable_de_test}, 
               async:false,
               success: function(result) //we're calling the response json array 'cities'
                {
                    //alert(region.result);
                 $('#rapports').hide();
                 $('#cas-region').html('<img src="<?php echo site_url();?>/"'+result.graph4+' />');                

                } //end success


             }); //end AJAX
        } 
     return false;   
    });

}); 

0 个答案:

没有答案