PHP проверяет, нажата ли кнопка радио

Я хочу знать, если пользователь нажимает кнопку отправки, он проверит, проверяет ли пользователь все радиокнопки.

Это то, что я пробовал до сих пор:

  $stmt = $conn->prepare( "SELECT *
      FROM tblquiz ORDER BY rand()" );
      $stmt->execute();

  ?>
  <form method="post" action="checkquiz.php">
    <?php 
    $number = 0;
    for($i=0; $row = $stmt->fetch(); $i++){
            $number++;  
            $id = $row['_id'];
            $question = $row['question'];
            $answers = array($row['answer1'],$row['answer2'],$row['answer3'],$row['correctanswer']);
            shuffle($answers);
    ?>

     <h4> <?php echo $number . ".) " . $question; ?></h4>   
     <label><input type="radio" value="<?php echo $answers[0]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[0]; ?></label>
     <label><input type="radio" value="<?php echo $answers[1]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[1]; ?></label>
     <label><input type="radio" value="<?php echo $answers[2]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[2]; ?></label>
     <label><input type="radio" value="<?php echo $answers[3]; ?>" name="<?php echo $question; ?>"> <?php echo $answers[3]; ?></label>

    <?php
    }
    ?>
    <br />
    <br />
    <input type="submit" value="Submit" name="submit">
</form>

CheckQuiz.php

<?php 


if( isset($_POST['submit'])) {
    //echo 'You clicked submit!';

    if(  ){

    } else {

    }


} else {

    echo "You didn't click submit!";

}


?>

Я новичок, поэтому мне очень нужна ваша помощь. Я хочу сначала проверить, все ли переключатели были проверены, а затем проверить, отвечает ли пользователь. Можете ли вы дать мне примеры реализации этого? Ваша помощь будет по-настоящему оценена. Спасибо.

2 ответа

Решение

Сначала вы должны назвать все ваши радио кнопки с одинаковым именем. Скажи его зовут question, пример ниже

<input type="radio" name="question" value="1">
<input type="radio" name="question" value="2">
<input type="radio" name="question" value="3">
<input type="radio" name="question" value="4">

Затем вы можете получить доступ к его значению с сервера как

if(isset($_POST["question"])){   
   echo $_POST["question"]; 
}else{
  echo "No answers were selected";
}

отредактировано в соответствии с потребностями пользователя

если у вас есть несколько вопросов, то вы можете использовать, как показано ниже

Question 1:

<input type="radio" name="question[1]" value="1">
<input type="radio" name="question[1]" value="2">
<input type="radio" name="question[1]" value="3">
<input type="radio" name="question[1]" value="4">

Question 2:

<input type="radio" name="question[2]" value="1">
<input type="radio" name="question[2]" value="2">
<input type="radio" name="question[2]" value="3">
<input type="radio" name="question[2]" value="4">

Тогда вы можете повторить как показано ниже:

   $quest = $_POST['question'];
   foreach($quest as $key=>$val){
         echo "Question ".$key." answer is ".$val."<br/>";
   }
if(isset($_POST["radioBoxName"])){
   // It was checked
   echo $_POST["radioBoxName"]; // This is the value of the checked option
}

Редактировать на основе комментариев

Если у вас есть, скажем, 10 вопросов с 4 разными ответами на каждый, вы можете назвать свои радио-боксы, как это

<input type="radio" name="answer[1][1]"> Question 1 Answer 1
<input type="radio" name="answer[1][2]"> Question 1 Answer 2
<input type="radio" name="answer[1][3]"> Question 1 Answer 3
<input type="radio" name="answer[1][4]"> Question 1 Answer 4

<input type="radio" name="answer[2][1]"> Question 2 Answer 1
<input type="radio" name="answer[2][2]"> Question 2 Answer 2
<input type="radio" name="answer[2][3]"> Question 2 Answer 3
<input type="radio" name="answer[2][4]"> Question 2 Answer 4

Тогда вы можете проверить их в PHP, как

// For 10 questions
for($i=1;$i<=10;$i++)
{
     if(!isset($_POST["answer"][$i]))
     echo "You didn't answer Question number $i ";
}
Другие вопросы по тегам