[PHP-users 27560] IE6をリロードしないとJpGraphのグラフが更新されない

naya SNA02388 @ nifty.com
2005年 11月 21日 (月) 17:06:02 JST


こんにちは。nayaと申します。


MySQLから読み込んだデータを用い、JpGraphで散布図を描かせてみたのですが、
プロットするデータを変えても IE6をリロードしないと描画したグラフの内容が
更新されません。

まず、フレームで上下に分割したページがあり、
・上段が、検索条件を入力するフォーム(年齢の切り分けをする)、
・下段に、X軸=身長、Y軸=体重の散布図が出力される、という構成があります。

問題ですが、

(1) 上段から、何も検索条件をつけずに検索します。
(2) 下段に、散布図が作成されます。
(3) 上段の検索条件(年齢)に「20歳以上30歳未満」と設定して再検索します。
(4) すると(2)と同じ散布図が出てきてしまいます。
(5) IE6をリロードすると「情報を再送信しないと…」云々といわれますが、
 「再試行」を選択すると、意図した(20歳以上と30歳未満に絞り込まれた)
  散布図が作図されます。

検索条件をとっかえひっかえしたら、その都度、条件に合致した散布図を表示さ
せたいのですが、毎度リロードしなければ無理でしょうか?何かうまい解決策は
ありませんでしょうか。

よろしくお願いします。


環境:
サーバー:FreeBSD 4.7、PHP4.3.11、MySQL 4.1.11
クライアント:WinXP/IE6のみを対象にしています。


一応、必要部分を抜き出した2ファイルのソースを掲載させていただきます。


---------------- 上段(検索フォーム: search.html)

<html><head></head><body>
<form method="post" action="scatter.php" target="frame2">
年齢
<input type="text" name="age_more"> 才 以上
<input type="text" name="age_less"> 才 未満
<input type="submit" value="検索">
</form>
</body></html>


---------------- 下段(散布図描画: scatter.php)
<?php
$con = mysql_connect(server, username, password);
$selectdb = mysql_select_db(dbname, $con);

$age_more = $_POST['age_more'];
$age_less = $_POST['age_less'];

$sql .= "SELECT * FROM MYTABLE ";
$sql .= "WHERE NUMB IS NOT NULL ";
if (strlen($age_more) > 0) {
    $sql .= " AND (NENREI >= " . $age_more . ")";
}
if (strlen($age_less) > 0) {
    $sql .= " AND (NENREI < " . $age_less . ")";
}

$rst = mysql_query($sql, $con);
$recmax = mysql_num_rows($rst);
for ($i = 0; $i < $recmax; $i++) {
    $col = mysql_fetch_array($rst);
    $datax[] = $col["SHINCHO"];
    $datay[] = $col["TAIJU"];
}

include ("./jpgraph.php");
include ("./jpgraph_scatter.php");

$graph = new Graph(300,200,"auto");
$graph->SetScale("linlin");
$sp1 = new ScatterPlot($datay,$datax);
$graph->Add($sp1);
$graph->Stroke();
?>

--
naya,
SNA02388 @ nifty.com



PHP-users メーリングリストの案内