-3

助けてください、私はオンライン クイズ アプリケーションを開発しています。すべての質問と回答はデータベースから選択されます。私が問題を抱えているのは、チェックされているかどうかにかかわらず、ラジオボタンから値を取得することです。以下は、データベースから質問と回答を生成するコードです。

if (!isset($_POST['submit'])) {
    echo "<form method=post action='#'>";
    echo "<table border=0>";
    while ($row = mysql_fetch_array($display)) {
        $id = $row["id"];
        $question = $row["question"];
        $opt1 = $row["ans1"];
        $opt2 = $row["ans2"];
        $opt3 = $row["ans3"];
        $opt4 = $row["ans4"];
        $opt5 = $row["ans5"];
        $answer = $row["ans"];
        echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
        echo "<tr><td>$opt1 <input type=radio name=q$id value=\"$opt1\"></td><td>$opt2     <input type=radio name=q$id value=\"$opt2\"></td><td>$opt3 <input type=radio name=q$id value=\"$opt3\"></td><td>$opt4 <input type=radio name=q$id value=\"$opt4\"></td><td>$opt5 <input type=radio name=q$id value=\"$opt5\">q$id</td></tr>";
    }
    echo "</table>";
    echo "<input type='submit' value='See how you did' name='submit'>";
    echo "</form>";
}

ラジオボタンの名前は

<input type='radio' name='q$id' value='$opt4' />

チェックされたラジオボタンの値を取得するにはどうすればよいですか? それとも私のPHPコードが間違っていますか? 私が必要としていたのは、ラジオボタンがチェックされている場合に選択されているものを出力することです。

if(isset($_POST['submit']))
{
    $value = $_POST[''];//the value of the radio button, i don't know what to put here
    $n = count($value);
   for($i=0; $i < $n; $i++)
   {
     echo $value[$i];
   } 
}
4

2 に答える 2

0

試す:

if(isset($_POST['submit']))
{
    $value = $_POST;//the value of the radio button, i don't know what to put here
    $n = count($value);
   for($i=0; $i < $n; $i++)
   {
     echo $value[$i];
   } 
}

$_POST[''] が間違っていました。$_POST だけを使用する必要がありました。

ここで foreach を使用することもできます。

if(isset($_POST['submit']))
{
    $values = $_POST;//the value of the radio button, i don't know what to put here

   foreach($values as $value)
   {
     echo $value;
   } 
}

$_POST は、フォームが送信したものを含む単なる配列です。名前のテキストフィールドがある場合は、次を使用します。

echo $_POST['name'];

それをエコーする。

試す

var_dump("<PRE>", $_POST);

また、フォームがどのように構成されているかを正確に確認できます。ドキュメントへのリンク

于 2012-12-13T17:23:22.573 に答える
-1

ご返信ありがとうございます。私はこのコードを出すことができましたが、それは機能しますが、構造や解決方法が適切かどうかはわかりません。

 <?php
 if (!isset($_POST['submit'])) {
 echo "<form method=post action='#'>";
 echo "<table border=0>";
 while ($row = mysql_fetch_array($display)) {
    $id = $row["id"];
    $question = $row["question"];
    $opt1 = $row["ans1"];
    $opt2 = $row["ans2"];
    $opt3 = $row["ans3"];
    $opt4 = $row["ans4"];
    $opt5 = $row["ans5"];
    $answer = $row["ans"];
    echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
    echo "<tr><td><input type=radio name=$id value=\"$id $opt1\">$opt1 </td><td><input type=radio name=$id value=\"$id $opt2\">$opt2 </td><td><input type=radio name=$id value=\"$id $opt3\">$opt3 </td><td><input type=radio name=$id value=\"$id $opt4\">$opt4 </td><td><input type=radio name=$id value=\"$id $opt5\">$opt5 <br>";
}
echo "</table>";
echo "<input type='submit' value='See how you did' name='submit'>";
echo "</form>";
}
?>

私がしたことは、ラジオボタンの値に質問のIDを含めることでした

<input type=radio name=$id value=\"$id $opt1\">

提案どおりに $_POST を使用してラジオ ボタンの値を収集し、値を 2 つの配列に分解して、最初の配列に質問 ID が含まれ、2 番目の配列にラジオ ボタン (回答) の実際の値が含まれるようにします。

<?php
elseif (isset($_POST['submit']))
{
 var_dump("<PRE>", $_POST);
 $sd = $_POST;
    foreach($sd as $sd)
    {
        $tok = explode(" ", $sd, 2);
        $w = mysql_query("select * from `questions` WHERE `id` = '$tok[0]'")or die(mysql_error());
        if(mysql_num_rows($w) == 1)
        {
            $sf = mysql_fetch_object($w);
            echo $tok[1].".......".$sf->ans."<br>";
        }
    }
}
?>

それは完全に機能しますが、効率的な結果が得られますか?

于 2012-12-13T22:34:14.830 に答える