Проверьте, является ли вопрос с несколькими ответами правильным с помощью PHP? - PullRequest
0 голосов
/ 29 октября 2019

У меня есть html-форма, в которой есть вопрос о флажке, в котором правильный ответ отмечен двумя определенными флажками. Я хочу использовать PHP, чтобы проверить, есть ли у пользователя правильный ответ и увеличить оценку на 1 (я знаю, как выполнить часть оценки, но не знаю, как проверить, есть ли у него правильный ответ.) Как я могу это сделать?

Это HTML-код для вопроса о флажке, правильный ответ - текст и изображения .:

<label >What was Mosiac capable of displaying together?:
<input type="checkbox" name="question3" id="q3answer1" value ="answer1" checked="checked" />Videos
<input type="checkbox" name="question3" id="q3answer2" value ="answer2" />Text
<input type="checkbox" name="question3" id="q3answer3" value ="answer3" />Images</label>

1 Ответ

0 голосов
/ 29 октября 2019

Поскольку вы пометили как PHP, так и JavaScript, я предоставлю решение для обоих языков. Я начну с JavaScript:

let correct = 0;
function submitAnswer() {
   if (document.getElementById("q3answer1").checked == false && 
       document.getElementById("q3answer2").checked == true && 
       document.getElementById("q3answer3").checked == true)
   {
     correct++;
     alert("Correct!");
   }
}
<label>What was Mosaic capable of displaying together?</label>
<input type="checkbox" name="question3" id="q3answer1" value="answer1" checked="checked" />Videos
<input type="checkbox" name="question3" id="q3answer2" value="answer2" />Text
<input type="checkbox" name="question3" id="q3answer3" value="answer3" />Images
<button onclick="submitAnswer()">Submit</button>

Теперь для PHP. Во-первых, поскольку каждый флажок имеет один и тот же атрибут name, вы должны назначить атрибут name как массив. Далее, все, что вам нужно сделать, это посмотреть, отмечены ли флажки, чтобы увидеть, установлен ли запрос POST каждого флажка, убедившись, что индексы 1 и 2 проверены, так как они будут вторым и третьим флажками, а также убедиться, что первыйфлажок не установлен. Следующий код работал для меня на http://phpfiddle.org:

<form method="post">
   <label>What was Mosaic capable of displaying together?</label>
   <input type="checkbox" name="question3[0]" id="q3answer1" value="answer1" checked="checked" />Videos
   <input type="checkbox" name="question3[1]" id="q3answer2" value="answer2" />Text
   <input type="checkbox" name="question3[2]" id="q3answer3" value="answer3" />Images
   <button name="submitBtn">Submit</button>
</form>
<?php
  $correct = 0;
  if (isset($_POST['submitBtn']))
  {
      $checkedBoxes = $_POST['question3'];
      if (!empty($checkedBoxes))
      {
         if (!isset($checkedBoxes[0]) && isset($checkedBoxes[1]) && isset($checkedBoxes[2]))
         {
             $correct++;
             echo "<h3>Correct!</h3>";
         }
      }
      else
      {
         echo "<h3>Please select a checkbox.</h3>";
      }
  }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...