php - 用 PHP 编写数学测验(单选按钮不起作用)

标签 php html sql database

我正在为我的 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/

相关文章:

html - 为什么我的元素与它的兄弟元素对齐?又名溢出 : hidden on Parent breaks left: 50% on Children

javascript - 移动子导航不会在一半时间内展开

javascript - Grails:更改 img src 的 JS 函数没有响应

mysql - 如何在mysql中获取字符串的中间部分

mysql - SQL 查询 - 如何获得评分最高的项目?

php - MySql 部分导出数据,无法导入回来

javascript - 如何将特定插件加载到 WordPress 中的 ajax 处理程序?

php - mysql查询计数和求和

php - 如果title_es为空,MYsql想要获取title_en

php - Cake PHP 联接查询以关联数组形式返回