jpgraph を使用してサイトの統計グラフをプロットしていますが、ページを更新せずにこれを行いたいと考えています。そこで、jpgraph コードを別のファイルに配置し、plot_graphs.php という名前を付けて、AJAX を介してそのファイルにリクエストを送信します。ここで、ファイル plot_graphs.php を直接開くと、問題なくグラフが開きます。しかし、AJAX からそれを開いて<div>
、ページに応答を表示するように指定すると、次のようになります。
�PNG IHDR,��� IDATx���i@���' I;Ⱦ���&*J]�ԥB�XEEK낈��Z۷�X�^�J�P�V��m�Ro]�V*R�Z��R�E�Av��S�Y&��ߧ0̜y�3'g&shb�BԡS]B��!�a��!�a��P}�ݻ7iҤ��
などなど
ページをリロードせずに、plot_graphs.php コードを div に直接配置することなく、これを機能させる方法はありますか? 重要な場合に備えて、ページの文字セットは utf-8 です。これらは plot_graphs.php の内容です:
<?php
require_once ('../jpgraph/src/jpgraph.php');
require_once ('../jpgraph/src/jpgraph_line.php');
$type=$_GET['type'];
$unit=$_GET['unit'];
$term=$_GET['term'];
$datay1 = array(20,15,23,15);
$datay2 = array(12,9,42,8);
$datay3 = array(5,17,32,24);
// Setup the graph
$graph = new Graph(300,250);
$graph->SetScale("textlin");
$theme_class=new UniversalTheme;
$graph->SetTheme($theme_class);
$graph->img->SetAntiAliasing(false);
$graph->title->Set('Filled Y-grid');
$graph->SetBox(false);
$graph->img->SetAntiAliasing();
$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);
$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels(array('A','B','C','D'));
$graph->xgrid->SetColor('#E3E3E3');
/* $graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLPLOT); */
// Create the first line
$p1 = new LinePlot($datay1);
$graph->Add($p1);
$p1->SetColor("#6495ED");
$p1->SetLegend('Line 1');
// Create the second line
$p2 = new LinePlot($datay2);
$graph->Add($p2);
$p2->SetColor("#B22222");
$p2->SetLegend('Line 2');
// Create the third line
$p3 = new LinePlot($datay3);
$graph->Add($p3);
$p3->SetColor("#FF1493");
$p3->SetLegend('Line 3');
$graph->legend->SetFrameWeight(1);
// Output line
$graph->Stroke();
?>