0

在这个系统上,用户可以创建任意数量的问题的测验,该信息保存到数据库中。我正在使用以下内容将测验输出给用户。这输出很好,您只能选择每个答案之一。每个问题都有 3 个具有相同帖子名称的输入,q1 有 ans1 ans1 ans1,q2 有 ans2ans2 ans2 等等......这就是“.$x”的位置。进来。

    $x = 1;
    while($row = mysql_fetch_row($quiz)) {
        echo "Question ".$x.": ";
        echo "<a><b> $row['question'] </b></a>";
        echo "<input type='radio' name='ans".$x." /> ".$row['ans1']."<br />";
        echo "<input type='radio' name='ans".$x." /> ".$row['ans2']."<br />";
        echo "<input type='radio' name='ans".$x." /> ".$row['ans3']."<br />";
        $x = $x + 1;
    }

问题出在下一个 php 页面中。我正在尝试遍历所有帖子,并且帖子与正确的ans匹配,然后结果=结果+ 1。我需要一个执行以下操作的循环:

$x = 1;
while($row = mysql_fetch_row($quiz)) {
    if ($_POST[ans[$x]]=='$row['correct']' { $result = $result + 1; 
    }
    $x = $x + 1;
    }

有没有办法我可以在 $_POST 值中使用一个变量来为每个循环说 ans1 ans2 ?

4

2 回答 2

0
$x = 1;
while($row = mysql_fetch_row($quiz)) {
    if ($_POST['ans'.$x] == $row['correct']) { $result = $result + 1; }
    $x = $x + 1;
}

希望这能解决你的问题

于 2012-04-27T10:10:25.523 回答
0

尝试这样的事情

$x = 1;
while($row = mysql_fetch_row($quiz)) {
    echo "Question ".$x.": ";
    echo "<a><b> $row['question'] </b></a>";
    echo "<input type='radio' name='ans[".$row['ansId']."][".$x."] ' /> ".$row['ans1']."<br />";
    echo "<input type='radio' name='ans[".$row['ansId']."][".$x."] ' /> ".$row['ans2']."<br />";
    echo "<input type='radio' name='ans[".$row['ansId']."][".$x."] ' /> ".$row['ans3']."<br />";
    $x = $x + 1;
}

你的前台脚本:

$x = 1;
while($row = mysql_fetch_row($quiz)) {
if ($_POST['ans'][$row['ansId']][$x]=='$row['correct']' { 
    $result = $result + 1; 
}
$x = $x + 1;
}
于 2012-04-27T10:14:07.540 回答