Как создать тест на PHP?

284
28 февраля 2018, 10:16

Приветствую. Есть тест на php.
Делаю так: по умолчанию в обработчике php есть две переменные - $ot и $not - правильные и неправильные ответы, изначально прировнял их к 0, за правильный ответ повышаю $ok на 1, за неправильный - повышаю на один $not.
пример кода:

<?php
   $ot = 0;
   $not = 0;
      if ($_POST[q1] == a){$ot++;} else {$not++;}
      if ($_POST[q2] == a){$ot++;} else {$not++;}
?>

В вопросах с радиокнопками проблем нет, только один вариант. А вот в вопросах с checkbox не могу проверить правильность выбранных ответов.
Подскажите, как это реализовать в рамках моего примера.

Answer 1

Вот html код

<div>
    <p>1. ВОПРОС 1...</p>
    <input name="q1[]" type="checkbox" value="a"> 1</label><br>
    <input name="q1[]" type="checkbox" value="b"> 2</label><br>
    <input name="q1[]" type="checkbox" value="c"> 3</label><br>
</div>

А вот часть моего php кода

<?php
   $ot = 0;
   $not = 0;
  $q1 = POST_['q1'];
  foreach($q1 as $value) {
  .... 
}
?>

Вот что поставить вместо ... я не могу понять. правильный ответ - 1 и 3 чекбокс, например.

Answer 2

Базовый набросок решения. Можно улучшить.

$successCount = 0;
$errorsCount = 0;
$validAnswers = [
   'q1' => [1, 3],
   'q2' => ['London'],
];
foreach($_POST as $questionKey => $userAnswer) {
    //  проверяем, что такой вопрос действительно есть в списке 
    if (!empty($validAnswers[$questionKey])) {
        //  если не чекбоксы, а "радиобаттон", т.е. только 1 правильный вариант - всё-равно приводим к массиву
        $userAnswer = !is_array($userAnswer) ? [$userAnswer] : $userAnswer;
        $successCount += array_intersect($userAnswer, $rightAnswers);
        $errorsCount += array_diff($userAnswer, $rightAnswers)
    }
}
READ ALSO
DLE facebook share не работает как надо

DLE facebook share не работает как надо

Почему не подтягивает title https://prntsc/ijxbio вот статья http://yaskraveradio

202
Вычислить сумму факториалов [требует правки]

Вычислить сумму факториалов [требует правки]

Нужна помощь в решении задачи на php:

228
Динамическое обновление страницы

Динамическое обновление страницы

Доброго времени сутокНужна помощь, есть страница с выводом например новостей, на PHP

250
Скелет для модуля под Opencart 3

Скелет для модуля под Opencart 3

Добрый день, никак не могу найти скелет или статью для разработки своего модуля под OpenCart 3Если есть возможность, поделитесь, спасибо

207