投稿者 メッセージ
<  PHPプログラミング  ~  変数が正しく通りません。
Yusuke
投稿1時間: 日 9月 03, 2006 10:33 pm  引用



登録日: 2006年3月 21日
投稿記事: 6

phpに関する初歩的な質問です。初心者ですので用語が不確かですがどうかご容赦ください。
htmlページのformタグから送られた変数をphpで受け取り、その変数を元に必要とする結果を表示させるスクリプトを作成しました。ところがその変数を用いた処理の一部だけがどうしてもうまく表示されません。以下にスクリプトの一部を抜粋いたしますので、どうかどなたかアドバイスをいただけたらと思います。

**htmlページ**
<form action = "quiz.php"
method = "post">
Name
<input type = "text"
name = "student">
<ol>
<li>
1+0
<ol type = "A">
<li>
<input type = "radio"
name = "quest[1]"
value = "A">
1
</li>
<li>
<input type = "radio"
name = "quest[1]"
value = "B">
2
</li>
<li>
<input type = "radio"
name = "quest[1]"
value = "C">
3
</li>
<li>
<input type = "radio"
name = "quest[1]"
value = "D">
4
</li>
</ol>
<hr>
</li>

(以下、quest[2], [3]...が存在する)

**phpページ(quiz.php)**
//htmlページで選ばれた答えを確認する。
for ($questionNumber = 1; $questionNumber <= count($_POST['quest']); $questionNumber++){
$guess = $_POST['quest[$questionNumber]'];

//↑ここがうまく通らない。
//htmlページで選ばれた答えが通ってほしい。

$correct = $key[$questionNumber]; //$keyは正答を表示する(定義済み)
$correct = rtrim($correct);
//print "$questionNumber, Guess = $guess, Correct = $correct.<br>\n";
if ($guess == $correct){
//user got it right
$numCorrect++;
print "problem #". $questionNumber. "was correct.<br>\n";
} else {
print "<font color = red>problem #". $questionNumber. " was incorrect.
The correct answer is " . $correct."
. Your answer was " . $guess . ".</font><br>\n";
} // end if
} // end for
トップに移動
ユーザー情報を表示 メッセージを送信 ウェブサイトに移動
johna
投稿1時間: 月 9月 04, 2006 1:05 pm  引用



登録日: 2005年6月 15日
投稿記事: 9

ラジオボタンなのでPOSTで配列にして受け取る必要はないと思いますが配列で受け取る理由は何かあるのですか?

後</form>はちゃっと終わらしてますか?

以下のように書くとPHP側で

<form action = "quiz.php" method = "post">
Name
<input type = "text" name = "student">
<ol>
<li>
1+0
<ol type = "A">
<li>
<input type = "radio" name = "quest" value = "A">
1
</li>
<li>
<input type = "radio" name = "quest" value = "B">
2
</li>
<li>
<input type = "radio" name = "quest" value = "C">
3
</li>
<li>
<input type = "radio" name = "quest" value = "D">
4
</li>
</ol>
<hr>
</li>
<input type="submit" />
</form>



こんな配列がもらえるはずです。

Array
(
[student] => aaaaa
[quest] => B
)

一回print_r($_$POST)をでPOSTの中身を見るのも手だと思います。
トップに移動
ユーザー情報を表示 メッセージを送信
Yusuke
投稿1時間: 水 9月 06, 2006 10:44 pm  引用



登録日: 2006年3月 21日
投稿記事: 6

questをquest[1], quest[2], quest[3]というように配列にしたいのは、いくつ配列があるのか固定されていないからです。最初のhtmlページがすでにphpによって生成されたページで、配列が2つであったり、7つであったりする可能性があるからです。

$questionNumberや$_POST['quest']は通っているようですが、$_POST['quest[$questionNumber]では何も結果が表示されなくなってしまいます。

どうかアドバイスをいただけませんでしょうか。
トップに移動
ユーザー情報を表示 メッセージを送信 ウェブサイトに移動
Yusuke
投稿1時間: 水 9月 06, 2006 10:50 pm  引用



登録日: 2006年3月 21日
投稿記事: 6

questをquest[1], quest[2], quest[3]というように配列にしたいのは、いくつ配列があるのか固定されていないからです。最初のhtmlページがすでにphpによって生成されたページで、配列が2つであったり、7つであったりする可能性があるからです。

$questionNumberや$_POST['quest']は通っているようですが、$_POST['quest[$questionNumber]']では何も結果が表示されなくなってしまいます。

formタグもちゃらっと終わらせてます。

どうかアドバイスをいただけませんでしょうか。
トップに移動
ユーザー情報を表示 メッセージを送信 ウェブサイトに移動
Yusuke
投稿1時間: 水 9月 06, 2006 10:51 pm  引用



登録日: 2006年3月 21日
投稿記事: 6

questをquest[1], quest[2], quest[3]というように配列にしたいのは、いくつ配列があるのか固定されていないからです。最初のhtmlページがすでにphpによって生成されたページで、配列が2つであったり、7つであったりする可能性があるからです。

$questionNumberや$_POST['quest']は通っているようですが、$_POST['quest[$questionNumber]']では何も結果が表示されなくなってしまいます。

formタグもちゃらっと終わらせてます。

どうかアドバイスをいただけませんでしょうか。
トップに移動
ユーザー情報を表示 メッセージを送信 ウェブサイトに移動
ちぴ
投稿1時間: 木 9月 07, 2006 2:42 pm  引用



登録日: 2006年4月 05日
投稿記事: 14

念のため

誤↓
$_POST['quest[$questionNumber]']

正↓
$_POST['quest'][$questionNumber]
トップに移動
ユーザー情報を表示 メッセージを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.