我需要在 php 文件测验中动态分配单选按钮
Posted
技术标签:
【中文标题】我需要在 php 文件测验中动态分配单选按钮【英文标题】:I need to dynamically assign radio button in a php file quiz 【发布时间】:2017-05-25 04:25:51 【问题描述】:我正在设计一个动态生成的测验页面(使用 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();
【问题讨论】:
如果单选按钮名称相同,则只能选择一个。在您的情况下,所有问题都有相同的单选按钮名称 【参考方案1】:您需要在单选按钮名称属性中包含每个问题独有的内容,例如:
<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" />
【讨论】:
问题已解决,但现在问题和答案没有出现。 echo "".$nr .$row["descr"] ."";回声“”; echo 'a:'.$row["a"].'name=
属性。【参考方案2】:
执行以下操作:
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)
【讨论】:
以上是关于我需要在 php 文件测验中动态分配单选按钮的主要内容,如果未能解决你的问题,请参考以下文章