我正在为我的 PHP 类(class)编写期末项目,在该项目中,用户将根据代数和微积分问题进行数学测验。问题和问题选择都存储在一个表中,这方面很好。
基本上我有一个迭代十次的循环,它从我的数据库中提取十个问题和十个答案选项。我还为每个答案选择打印了一个单选按钮。
但是,该表单只允许我在整个页面上选择一个单选按钮。所以假设我在一个问题上选择选项 B,然后在第二个问题上选择 A,第一个单选按钮中的“圆圈”将被取消选中。
while (count($list) < 10){
do { //this is where we pull questions from database
$randomInt = rand(2,$rowcount); //random int is inbetween 2 and numbers of rows
$sqlselect = "SELECT * FROM `math` WHERE `bid` = \"" . $randomInt . "\" AND `acategory` = \"" . $category . "\" ";
$sqlSelectQuery = mysqli_query($link,$sqlselect);
$numOfGoodQuestions = mysqli_num_rows($sqlSelectQuery);
} while ($numOfGoodQuestions == 0); //if it returns blank field, it will loop again
if (in_array($randomInt,$list)){ //if it pulls duplicate number, continue
continue;
}
else {
//use fetch function
$row=mysqli_fetch_array($sqlSelectQuery);
$questionNumber = $questionNumber + 1;
$strQuestionNumber = (string)$questionNumber;
$slots = array();
array_push($slots,$row['aanswer']); //pushes answer choices into slots array
array_push($slots,$row['awrong1']);
array_push($slots,$row['awrong2']);
array_push($slots,$row['awrong3']);
shuffle($slots); //shuffles the answer choices
//this is where we print the radio buttons
print ($strQuestionNumber.". <b style='color:red;'>".$row["aquestion"]."</b><br>"); //prints bold questions
print ("<input type = 'radio' name='test' value =$slots[0]>".$slots[0]."<br>"); //displaying 4 radio buttons with value of answer
print ("<input type = 'radio' name='test' value =$slots[1]>".$slots[1]."<br>");
print ("<input type = 'radio' name='test' value =$slots[2]>".$slots[2]."<br>");
print ("<input type = 'radio' name='test' value =$slots[3]>".$slots[3]."<br>");
print("<br>");
array_push($list,$randomInt); //pushes random numbers into an array
这是我页面的链接,您可以自己查看: http://socialsoftware.purchase.edu/nicholas.roberts/mathquiz/mathselect.php?category=Calculus
所以基本上我希望用户每个问题只能选择一个单选框。提前致谢!
最佳答案
HTML
会将具有相同 name
值的单选按钮组合在一起。在您的情况下,每个单选按钮都具有相同的 name='test'
因此它们都将被视为“一起”。为了能够为每个问题选择答案,您必须为组命名。例如,name='test1'
用于问题 1 中的所有单选按钮,name='test9'
用于问题 9 中的所有单选按钮。
关于php - 用 PHP 编写数学测验(单选按钮不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980572/