みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

POSTで受け取った値をもとにJpGraphでグラフ化したいです。

こんにちは。
いつもお世話になっております。

今グラフPHPを↓のように書いています。
<?php
require_once("jpgraph/jpgraph.php");
require_once("jpgraph/jpgraph_line.php");
//グラフの作成
$a = 75;
$b = 24;
$c = 5;
$d = 56;
$e = 12;

$graph = new Graph(400,300,"auto");
$graph->SetScale("textlin");
$label = array("Apr","May","June","Lul","Aug");
$graph->xaxis->SetTickLabels($label);
//拝啓の色指定
$graph->ygrid->SetFill(true,'#EFEFFF@0.5','#DDEEFF@0.5');
//線1のプロット
$data = array($a,$b,$c,$d,$e);
$plot = new LinePlot($data);
$plot->mark->SetType(MARK_FILLEDCIRCLE);
$plot->mark->SetFillColor("blue");
$plot->mark->SetWidth(3);
$plot->SetColor("blue");
$plot->SetLegend(total);
$graph->Add($plot);

これ↑は、ちゃんと表示されたので、
$a = 75;
に入っている部分を、
$a = $_POST["1gatu"];
$b = $_POST["2gatu"];

にしてみたのですが、折れ線のない
グラフだけ(枠組みだけ)が表示されて
しまいます。

JpGraphでは、このような使い方は
出来ないのでしょうか・・・・?

どうかご指導よろしくお願いいたします。

投稿日時 - 2005-04-19 08:55:46

QNo.1339525

困ってます

質問者が選んだベストアンサー

$a = $_POST["1gatu"];
$b = $_POST["2gatu"];

おもむろに変数に放り込んで使っていますが、この受け渡されたモノは本当に数値なのでしょうか?
キャストに頼らず、数値であることを明示的にチェックしてからキャストしたほうが、良いと思います。
$_POSTが非数値だったら、$xにはなんらかのダミー値を入れるとか・・・

jpgraphは、使ったことがないのですが、LinePlotに与える配列は数値じゃなきゃダメ、ってことはないですか?
この$aがいきなり非数値だから、以降のプロットが描画されない、という状態ではないのでしょうか?

投稿日時 - 2005-04-21 11:43:17

お礼

re13bさま。
ご指導ありがとうございます。

POSTで渡していた値は、数値には間違いないのですが、
while($row = mysql_fetch_array($res)){
で出した値を($row[0])から順に吐き出したものを
渡していた為に、すべてが0 として受け取られて
しまっていたみたいでした。
なので、while($row = mysql_fetch_array($res)){
の}の間でPOSTで渡してみました所、無事に
グラフ表示させる事ができました。

自己レス機能がないので、解決した旨を
書き込みする事ができませんでした・・・。

お騒がせしてすみませんでした。

投稿日時 - 2005-04-21 12:17:42

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問