为什么我的单选按钮重叠?

时间:2014-04-09 22:59:35

标签: php database radio-button

我正在尝试制作一个测验表格,显示问题和3个答案,这些答案来自我的数据库。当我运行循环时,它会使用单选按钮正确显示所有问题和答案选项但是当我点击问题1时回答“b”然后单击问题2回答“c”单选按钮取消单击问题1的答案“b”并突出问题2回答“c”;

Answering question 1             Trying to answer question 2 after answering question 1
1. What is your name?                  1. What is you name?
   ()John                                  ()John
   (*)Jake                                 ()Jake <--un-clicked
   ()Joe                                   ()Joe
2. Where are you from?                 2. Where are you from?
   ()San Antonio                           ()San Antonio   
   ()Austin                                ()Austin
   ()New York                              (*)New York

如果您发现问题1,则在回答问题2时将删除答案。    这是我的代码,它从数据库中检索数据并显示它。

    $mysql = "SELECT * FROM $table WHERE $table.quiz_name = '$name'";

    $mydata = mysql_query($mysql,$con);
    //post quiz name (here)
    echo $name."</br>";
    while($records = mysql_fetch_array($mydata)){

    echo "<div>";
         echo $records['question_description']."<br>";

        //image displayed here  

        echo "<label><input type='radio' name='option' value=".$records['option_a'].">".$records['option_a']."</label><br>";
         echo "<label><input type='radio' name='option' value=".$records['option_b'].">".$records['option_b']."</lable><br>";
         echo "<label><input type='radio' name='option' value=".$records['option_c'].">".$records['option_c']."</label><br>";

         echo "</ br> <hr>";
    echo "</div>";
     }

我希望有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您的单选按钮需要不同的名称。拥有相同名称的所有内容意味着您只能从每个收音机中选择一个。

您的单选按钮每个问题的名称应该不同。考虑使用像你的数据库ID这样的东西:

while($records = mysql_fetch_array($mydata)) {
    echo $records['question_description']."<br>";

    echo "<label><input type='radio' name='option" . $record['id'] . "' value=".$records['option_a'].">".$records['option_a']."</label><br>";
    echo "<label><input type='radio' name='option" . $record['id'] . "' value=".$records['option_b'].">".$records['option_b']."</lable><br>";
    echo "<label><input type='radio' name='option" . $record['id'] . "' value=".$records['option_c'].">".$records['option_c']."</label><br>";
}

答案 1 :(得分:0)

您正在使用&#39;选项对所有单选按钮进行分组&#39; ...执行此操作;

$counter = 0 //declare a counter outside the loop

并添加名称

 name='option".$counter."'

并在循环内增加计数器

$counter++

这将为每组单选按钮提供一组