我正在设计一个动态生成的测验页面(使用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();
答案 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)