1つのPHPファイル内の送信ページと送信後ページを分けて表示したい - PHPプロ!Q&A掲示板

777

  • 1000P

1つのPHPファイル内の送信ページと送信後ページを分けて表示したい

質問日時 / 2007年11月21日 00:14    回答数 / 2件

Questioner:  warashi4  このエントリーをはてなブックマークに追加 

キーワード / キーワードが設定されていません

PHP初心者です。
以下のPHPは①から送信された値を②で受け取って処理するものですが、値の送信後は②だけを表示したいのです。現状は①も②も表示されてしまいます。
見よう見まねでここまできましたが、この部分はまったくわかりません。
どなたかご教授いただけないでしょうか?

<?php
$kukakuno = "1";
$kaijono = "北";
?>

<html>
<head>
<title>***</title>
</head>
<body>

<?php
// ファイルインクルード
include("1n.php");

// データベース接続
$conn = mysql_connect($host, $user, $pw) or die("データベース接続エラー");
mysql_select_db($db, $conn) or die("接続エラー");

// データ抽出
$sql = "SELECT * FROM $table where kukaku = '$kukakuno' and kaijo = '$kaijono'";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");
?>

①<!-- ここから問題画面 -->
<form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
<table width="222" border="0" cellpadding="0" cellspacing="0">
<?php while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { ?>
<tr>
<td colspan="2"><?php echo $row["kukaku"]?>.<?php echo $row["maker"]?></td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td colspan="2"><font color="#FF3300">■</font>問題</td>
</tr>
<tr>
<td colspan="2"><hr></td>
</tr>
<tr>
<td colspan="2"><?php echo $row["question"]?></td>
</tr>
<tr> 
<td width="40">1<input type="radio" name="rad" value="1"></td>
<td width="181"><?php echo $row["question01"]?></td>
</tr>
<tr> 
<td width="40">2<input type="radio" name="rad" value="2"></td>
<td width="181"><?php echo $row["question02"]?></td>
</tr>
<tr> 
<td width="40">3<input type="radio" name="rad" value="3"></td>
<td width="181"><?php echo $row["question03"]?></td>
</tr>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value=" 送 信 ">
</td>
</tr>
<?php } ?>
</table>
</form>

②<!-- ここから送信先 -->
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {

// データを受け取る
$rad = $_POST["rad"];

if ($rad == ""){
    echo "<p><font color=#FF0000><b>答えを選択して下さい!</b></font>";
    exit ();
}

// データ抽出
$sql = "SELECT * FROM $table where kukaku = '$kukakuno' and kaijo = '$kaijono'";
$res = mysql_query($sql, $conn) or die("データ抽出エラー");

if ($rad > 0){
?>

<?php while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { ?>
<?php echo $row["kukaku"]?>.<?php echo $row["maker"]?><br>
<hr>
あなたの答え=<b><?php echo $rad?></b><br>

<?php
if ($row["seikai"] == $rad){
 echo "<font color=#FF0000><b>正解です!</b></font><br>";
}
else {
 echo "正解は<font color=#FF0000><b>" . $row["seikai"] . "</b></font>です!<br>";
}
?>
<?php 
}
}
}
?>

<?php
// 接続解除
mysql_close($conn);
?>
</body>
</html>

宜しくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01laquDevform が見えなくなるだけでよいのであればこんなのは
 ┗A01-1warashi4こんばんは。 ありがとうございました。ばっちりです

回答一覧

並び替え:

A01 満足
answererlaquDev [11月21日 00:38] (最終編集:11月21日 00:47)

form が見えなくなるだけでよいのであればこんなのはいかがでしょう。
  1. <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" style="display:<?php echo ( isset($_POST["submit"]) ) ? "none" : "block" ?>;">
ただこれだと、htmlのソースとしては送信されてしまいますが。。。
あとは、①部をすべて別ファイルとし
  1. <?php
  2.     if ( !isset($_POST["submit"]) ) {
  3.         include("xxxx.php")
  4.     }
  5. ?>
として、postされていないときのみincludeとかでしょうか。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerwarashi4 [11月21日 00:44]

こんばんは。
ありがとうございました。ばっちりです。
とても助かりました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
動的なURLを静的に見せる方法
 このエントリーをはてなブックマークに追加 
A
普通に考えて、mod_rewrite でしょうね。 http://www.nishishi.com/blog/2006/01/mod_rewrite_url.html...

>>続きを読む

GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)