Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php循环中,如何使一个结果的单选按钮独立于下一个结果_Php - Fatal编程技术网

在php循环中,如何使一个结果的单选按钮独立于下一个结果

在php循环中,如何使一个结果的单选按钮独立于下一个结果,php,Php,我正在做一个测验,问题来自我的数据库。每个选项(A、B、C)都有自己的单选按钮,这是我显示测验的代码: echo "<table>"; while ($row = mysqli_fetch_array($resultx)) { echo '<tr><td>Question '.$qcounter.'<br/></td></tr>'; $qcounter++; //output rows for rad

我正在做一个测验,问题来自我的数据库。每个选项(A、B、C)都有自己的单选按钮,这是我显示测验的代码:

echo "<table>";
while ($row = mysqli_fetch_array($resultx)) {
    echo '<tr><td>Question '.$qcounter.'<br/></td></tr>';
    $qcounter++;
    //output rows for radiobuttons
    echo "<tr><td>".($row['Question'])."</td></tr>";
    echo '<tr><td><input type="radio" name="q1" value="A" id="question-1-answers-A"/><label for="question-1-answers-C3">A)&nbsp;'.($row['AnswerA']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="q1" value="B" id="question-1-answers-B"/><label for="question-1-answers-C3">B)&nbsp;'.($row['AnswerB']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="q1" value="C" id="question-1-answers-C"/><label for="question-1-answers-C3">C)&nbsp;'.($row['AnswerC']).'</label></td></tr>';
    }
echo "</table>";
echo”“;
while($row=mysqli\u fetch\u数组($resultx)){
回显“问题”。$qcounter.
; $qcounter++; //单选按钮的输出行 回显“($row['Question'])”; 回音“A”。($row['AnswerA']); 回显'B'($row['AnswerB'])。'; 回显'C'($row['AnswerC'])。'; } 回声“;

我的问题是,每个问题的单选按钮并不独立于另一个问题。例如:如果你为问题1选择第一选项C,然后为问题2选择选项B,这将从问题1中删除选项C,并且基本上你只能为整个测试选择一个单选按钮。我怎样才能解决这个问题


谢谢

您在整个循环中使用了相同的
名称
属性。在那里附加一些独特的东西(比如你的计数器)或者使用数组

echo "<table>";
while ($row = mysqli_fetch_array($resultx)) {
    echo '<tr><td>Question '.$qcounter.'<br/></td></tr>';
    $qcounter++;
    //output rows for radiobuttons
    echo "<tr><td>".($row['Question'])."</td></tr>";
    echo '<tr><td><input type="radio" name="q' . $qcounter . '" value="A" id="question-1-answers-A"/><label for="question-1-answers-C3">A)&nbsp;'.($row['AnswerA']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="q' . $qcounter . '" value="B" id="question-1-answers-B"/><label for="question-1-answers-C3">B)&nbsp;'.($row['AnswerB']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="q' . $qcounter . '" value="C" id="question-1-answers-C"/><label for="question-1-answers-C3">C)&nbsp;'.($row['AnswerC']).'</label></td></tr>';
    }
echo "</table>";
echo”“;
while($row=mysqli\u fetch\u数组($resultx)){
回显“问题”。$qcounter.
; $qcounter++; //单选按钮的输出行 回显“($row['Question'])”; 回音“A”。($row['AnswerA']); 回显'B'($row['AnswerB'])。'; 回显'C'($row['AnswerC'])。'; } 回声“;
在整个循环中使用相同的
名称
属性。在那里附加一些独特的东西(比如你的计数器)或者使用数组

echo "<table>";
while ($row = mysqli_fetch_array($resultx)) {
    echo '<tr><td>Question '.$qcounter.'<br/></td></tr>';
    $qcounter++;
    //output rows for radiobuttons
    echo "<tr><td>".($row['Question'])."</td></tr>";
    echo '<tr><td><input type="radio" name="q' . $qcounter . '" value="A" id="question-1-answers-A"/><label for="question-1-answers-C3">A)&nbsp;'.($row['AnswerA']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="q' . $qcounter . '" value="B" id="question-1-answers-B"/><label for="question-1-answers-C3">B)&nbsp;'.($row['AnswerB']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="q' . $qcounter . '" value="C" id="question-1-answers-C"/><label for="question-1-answers-C3">C)&nbsp;'.($row['AnswerC']).'</label></td></tr>';
    }
echo "</table>";
echo”“;
while($row=mysqli\u fetch\u数组($resultx)){
回显“问题”。$qcounter.
; $qcounter++; //单选按钮的输出行 回显“($row['Question'])”; 回音“A”。($row['AnswerA']); 回显'B'($row['AnswerB'])。'; 回显'C'($row['AnswerC'])。'; } 回声“;
这应该可以通过在单选按钮的
名称中添加
$qcounter
来解决。或者,您可以尝试从数据库中获取问题的id(pk),并将此id添加到
name
属性中。这样,您就已经有了将答案/用法再次保存到数据库的id


编辑:chris85在我打字时回答了这个问题

这应该可以通过在单选按钮的
名称中添加
$qcounter
来解决。或者,您可以尝试从数据库中获取问题的id(pk),并将此id添加到
name
属性中。这样,您就已经有了将答案/用法再次保存到数据库的id


编辑:chris85在我打字时回答了这个问题

每个问题中的单选按钮需要不同的名称。在上面的代码中,似乎每个问题单选按钮的名称都是“q1”。试试这个:

echo "<table>";
while ($row = mysqli_fetch_array($resultx)) {
    echo '<tr><td>Question '.$qcounter.'<br/></td></tr>';
    $qcounter++;
    // Assigning names to radio buttons
    $question_number = "q".$qcounter;

    //output rows for radiobuttons
    echo "<tr><td>".($row['Question'])."</td></tr>";
    echo '<tr><td><input type="radio" name="'.$question_number.'" value="A" id="question-1-    answers-A"/><label for="question-1-answers-C3">A)&nbsp;'.   ($row['AnswerA']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="'.$question_number.'" value="B" id="question-1-answers-B"/><label for="question-1-answers-C3">B)&nbsp;'.($row['AnswerB']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="'.$question_number.'" value="C" id="question-1-answers-C"/><label for="question-1-answers-C3">C)&nbsp;'.($row['AnswerC']).'</label></td></tr>';
}
echo "</table>";
echo”“;
while($row=mysqli\u fetch\u数组($resultx)){
回显“问题”。$qcounter.
; $qcounter++; //为单选按钮指定名称 $question_number=“q”。$qcounter; //单选按钮的输出行 回显“($row['Question'])”; 回音“A”。($row['AnswerA']); 回显'B'($row['AnswerB'])。'; 回显'C'($row['AnswerC'])。'; } 回声“;

编辑:chris85在我打字时发表了他的评论。他的代码更好,因为它直接在按钮本身中添加$qcounter,而不是创建一个中间变量。

每个问题中的单选按钮都需要不同的名称。在上面的代码中,似乎每个问题单选按钮的名称都是“q1”。试试这个:

echo "<table>";
while ($row = mysqli_fetch_array($resultx)) {
    echo '<tr><td>Question '.$qcounter.'<br/></td></tr>';
    $qcounter++;
    // Assigning names to radio buttons
    $question_number = "q".$qcounter;

    //output rows for radiobuttons
    echo "<tr><td>".($row['Question'])."</td></tr>";
    echo '<tr><td><input type="radio" name="'.$question_number.'" value="A" id="question-1-    answers-A"/><label for="question-1-answers-C3">A)&nbsp;'.   ($row['AnswerA']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="'.$question_number.'" value="B" id="question-1-answers-B"/><label for="question-1-answers-C3">B)&nbsp;'.($row['AnswerB']).'</label></td></tr>';
    echo '<tr><td><input type="radio" name="'.$question_number.'" value="C" id="question-1-answers-C"/><label for="question-1-answers-C3">C)&nbsp;'.($row['AnswerC']).'</label></td></tr>';
}
echo "</table>";
echo”“;
while($row=mysqli\u fetch\u数组($resultx)){
回显“问题”。$qcounter.
; $qcounter++; //为单选按钮指定名称 $question_number=“q”。$qcounter; //单选按钮的输出行 回显“($row['Question'])”; 回音“A”。($row['AnswerA']); 回显'B'($row['AnswerB'])。'; 回显'C'($row['AnswerC'])。'; } 回声“;

编辑:chris85在我打字时发表了他的评论。他的代码更好,因为它直接在按钮本身中添加$qcounter,而不是创建一个中间变量。

“基本上,整个测试只能选择一个radiobutton”如果希望
输入
进入相同的
名称
使用
name=“q1[]”
时,所有单选按钮应具有相同的名称。此外,在实际设置之前,您正在回显
$qcounter
。在while循环之前do
$qcounter=0。如果您启用了
错误报告(-1)
@xorif,您就会知道这一点。是的,我已经将它设置在我发布的代码之上,很抱歉没有包括在内it@chris85是的,很有效,谢谢!好的,我把它移到了一个答案。“基本上,你只能为整个测试选择一个单选按钮”意味着,如果你想
输入
以相同的
名称
使用
name=“q1[]”
输入,那么所有单选按钮都应该具有相同的名称。另外,在设置之前,你正在回显
$qcounter
。在while循环之前do
$qcounter=0。如果您启用了
错误报告(-1)
@xorif,您就会知道这一点。是的,我已经将它设置在我发布的代码之上,很抱歉没有包括在内it@chris85是的,很有效,谢谢!好的,我把它移到了一个答案。