我需要在php文件测验中动态分配单选按钮

时间:2017-01-10 15:54:37

标签: php html mysql button radio

我正在设计一个动态生成的测验页面(使用mysqli / php / html),我需要插入一些单选按钮以验证答案。 我遇到的问题是,当在循环内打印单选按钮时,它们不能正确取消选中 - 而不是有4组单选按钮/问题,我的单选按钮分配如下:问题1 a)问题2 a)等等。 有没有人知道如何解决这个问题?

$sql = "SELECT id, descr, a,b,c,d FROM question ORDER BY rand() LIMIT  15";
$result = $conn->query($sql);



if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        print "<strong>".$row["descr"] ."</strong><br>";
        echo "<br>";
        echo 'a:'.$row["a"].'<td><cb><input type="radio" name="a" value="$row["a"]"></cb></td>'."<br>";
        echo "<br>";
        echo 'b:'. $row["b"].'<td><cb><input type="radio" name="b" value="$row["b"]"></cb></td>'."<br>";
        echo "<br>";
        echo 'c:'.$row["c"].'<td><cb><input type="radio" name="c" value="$row["c"]"></cb></td>'."<br>";
        echo "<br>";
        echo 'd:'. $row["d"].'<td><cb><input type="radio" name="d" value="$row["d"]"></cb></td>'."<br>";
        echo "<br>";

    }

} else {
    echo "0 results";
}
$conn->close();

2 个答案:

答案 0 :(得分:0)

您需要在单选按钮名称属性中包含每个问题的唯一内容,例如:

<input type="radio" name="a<?= $row['question_number'] ?" />

question_number只是一些组成的领域,但这应该是每个问题都是独一无二的。这将导致类似:

Question 1:    
<input type="radio" name="a1" />
<input type="radio" name="b1" />
<input type="radio" name="c1" />
<input type="radio" name="d1" />

Question 2:
<input type="radio" name="a2" />
<input type="radio" name="b3" />
<input type="radio" name="c4" />
<input type="radio" name="d5" />

答案 1 :(得分:0)

执行以下操作:

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        print "<strong>".$row["descr"] ."</strong><br>";
        echo "<br>";
        echo 'a:'.$row["a"].'<td><cb><input type="radio" name="q'.$row["id"].'" value="a"></cb></td>'."<br>";
        echo "<br>";
        echo 'b:'. $row["b"].'<td><cb><input type="radio" name="q'.$row["id"].'" value="b"></cb></td>'."<br>";
        echo "<br>";
        echo 'c:'.$row["c"].'<td><cb><input type="radio" name="q'.$row["id"].'" value="c"></cb></td>'."<br>";
        echo "<br>";
        echo 'd:'. $row["d"].'<td><cb><input type="radio" name="q'.$row["id"].'" value="d"></cb></td>'."<br>";
        echo "<br>";

    }

} else {
    echo "0 results";
}

这样每个问题都会创建一组具有相同名称且价值不同的单选按钮,因此当您提交时,您可以检查例如:$_GET["qXXX"]以确定问题XXX的答案是什么(例如,a, b,c或d)