0

ユーザーが複数の質問に答えるクイズを作成しようとしています。

ラジオを使用して各質問を作成しましたが、そのラジオがチェックされているかどうかを確認しようとしています。ラジオがチェックされていない場合、エラーが表示されます。私はほとんどその部分を機能させました。
私の問題は、質問1にチェックされたラジオがあり、質問2に答えられなかった場合、ユーザーが送信を押すと、質問1の答えがなくなってしまうということです。

彼らがチェックした回答をスティッキーフォームのように保持し、回答しなかった質問 (この場合は質問 2) にのみエラーを表示したいと考えています。以下は、私がそれを解決しようとした2つの異なる方法であり、達成できないようです。

これは、phpで質問を表示する方法です。

<tr>
    <td> If a and b are negative numbers, and |a| < |b|, then b - a is negative. </td>
    <td> <?php echo ($err['q[1]']? "<span style='color:red'>*".$err['q[1]']."</span><br>": "");?>
        <input type="radio" name="q[1]" id="q[1]t" value="T"  <?php if (isset($_POST['q[1]']) and $_POST['q[1]'] == 'T') { echo 'checked'; } ?> > TRUE
        <input type="radio" name="q[1]" id="q[1]f" value="F"  <?php if (isset($_POST['q[1]']) and $_POST['q[1]'] == 'F') echo 'checked'; ?> > FALSE
    </td>
</tr>
<tr>
    <td> The equation 2x + 7 = 2(x + 5) has one solution. </td>
    <td>    <?php echo ($err['q[2]']? "<span style='color:red'>*".$err['q[2]']."</span><br>": "");?>
        <input type="radio" name="q[2]" id="q[2]t" value="T"  <?php if (isset($_POST['q[2]']) and $_POST['q[2]'] == 'T') echo 'checked'; ?> > TRUE
        <input type="radio" name="q[2]" id="q[2]f" value="F"  <?php if (isset($_POST['q[2]']) and $_POST['q[2]'] == 'F') echo 'checked'; ?> > FALSE
    </td>
</tr>

これは私がそれを確認しようとしている方法です。

if (isset($_POST) && !empty($_POST)) {

    if (isset($_POST['q[1]'])) {
        $radio_input = $_POST['q[1]'];
        echo $radio_input;
        $error=false;
    } else {
        $err['q[1]']= "Please Select An Answer";
        $error=true;
    }
    if (empty($_POST['q[2]'])) {
        $err['q[2]']= "Please Select An Answer";
        $error=true;
    } else {
        $error=false;
    }
4

1 に答える 1