[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Результат тестирования !!!Срочно!!!
Гость_Сергей
Уважаемые знатоки... Скажите нужно сделать результат тестирования... а именно привожу пример... Пользователь прошел тестирование и ему выбиваеться его результат например "ваша оценка 2" или например "Вы ответили 50%"

Привожу пример моего скрипта:


<?

// Инициализируем сессии
session_start();

// Если тест еще не начинали проходить
if(!isset($_SESSION['answers'])) {
$id = 1;
$_SESSION['answers'] = array();
}

// Массив с вопросами
$questions = array(
1 => 'Как сделать свой первый скрипт?',
2 => 'Как его настроить?',
3 => 'Как теперь сдать зачет?',
);


// Массив с вариантами ответов
$options = array(
1 => array( 1 => 'Первый вариант', 2 => 'Второй вариант', 3 => 'Третий вариант'), // Варианты ответа к первому вопросу
2 => array( 1 => 'Первый вариант', 2 => 'Второй вариант', 3 => 'Третий вариант'), // Варианты ответа ко второму вопросу
3 => array( 1 => 'Первый вариант', 2 => 'Второй вариант', 3 => 'Третий вариант'), // Варианты ответа к третьему вопросу
);

// Если посетитель ответил на один из вопросов
if(isset($_GET['question']) && isset($_GET['answer'])) {
$prevId = $_GET['question'] - 1;

if(sizeof($questions) >= $prevId && sizeof($options[$prevId]) >= $_GET['answer']) {
$_SESSION['answers'][$prevId]['answer'] = $_GET['answer'];
$id = $_GET['question'];
}
// Если посетитель решил заново пройти тест
} else if(isset($_GET['newTest'])) {
unset($_SESSION['answers']);
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Небольшой тест</title>
</
head>

<
body>
<? if(isset($_GET['question']) && $_GET['question'] <= sizeof($questions) || $id == '1') { ?>
<h3>Вопрос: <?=$questions[$id]?></h3>
<
h4>Варианты ответа</h4>
<
p>
<?
foreach($options[$id] as $key => $data) {
echo $key . '. <a href="?question='.($id + 1).'&answer='.$key.'" />' . $data . '</a><br />';
}
?>
</p>
<? } else { ?>

<h2>Тест успешно пройден!</h2>
<
h3>Ваши ответы</h3>
<?
for($i = 1; $i <= sizeof($questions); $i++) {
echo 'Вопрос: ' . $questions[$i] . '<br /> Ответ: ' . $options[$i][$_SESSION['answers'][$i]['answer']] . '<br /><br />';
}
?>

<?
} ?>
<p><a href="?newTest=ok">Начать заново</a></p>
</
body>
</
html>


Буду вам очень благодарен....



Спустя 19 минут, 23 секунды (23.12.2011 - 19:28) Игорь_Vasinsky написал(а):
Поставил в начале error_reporting(E_ALL);
и
Свернутый текст
Notice: Undefined variable: id in Z:\home\test.ru\www\test2.php on line 50
[Денвер: показать возможную причину ошибки]
Тест успешно пройден!

Ваши ответы


Notice: Undefined offset: 1 in Z:\home\test.ru\www\test2.php on line 66

Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как сделать свой первый скрипт?
Ответ:


Notice: Undefined offset: 2 in Z:\home\test.ru\www\test2.php on line 66

Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как его настроить?
Ответ:


Notice: Undefined offset: 3 in Z:\home\test.ru\www\test2.php on line 66

Notice: Undefined index: in Z:\home\test.ru\www\test2.php on line 66
Вопрос: Как теперь сдать зачет?
Ответ:

Начать заново


у тя вообще работает? а то ты смело и сессию и редирект...

вообщем -назначай балы для ответов - для правильный 1 для не правильных 0 и считай относительно кол-вы вопросов.

и если надо срочно - то за рублики

Спустя 15 часов, 32 минуты, 3 секунды (24.12.2011 - 11:00) Гость_Сергей написал(а):
НЕ у меня работает...

Просто мне нужен код для того чтобы подсчитать сколько правильно и сколько не правильно...
Подскажите пожалуйста, я начинающий в php я сделал тест а придумать как сделать результат не знаю... НУ хотя предварительно... Очень прошу...

Спустя 3 часа, 51 минута, 48 секунд (24.12.2011 - 14:52) inpost написал(а):
Гость_Сергей
Меня смущает то, что верхний код не поход на код новичка, хотя ошибки есть.
В чём, собственно, проблема? foreach - обход массива, $_POST, его сравни с результатами ответа. В отдельную переменную заноси счетчик, сколько отвечено правильно, допустим $count = 0, если 1 ответ, то ++$count; В итоге получишь количество правильно отвеченных. Сколько всего: count($questions) - получишь количество вопросов всего. Далее обычное деление: отвечено на всего, получишь % отвеченных.

Спустя 1 день, 1 час, 40 минут, 44 секунды (25.12.2011 - 16:33) Гость_Сергей написал(а):
inpost

Пасиба большое

Спустя 4 дня, 1 час, 45 минут, 22 секунды (29.12.2011 - 18:18) Гость_Сергей написал(а):
inpost

3 дня мучаюсь и не получаеться... Я точно мог сказать что в самом начале не назначилпеременную id=1 .... Но результаты никак не получеються сделать...


И снова прошу о помощи...

Спустя 4 минуты, 42 секунды (29.12.2011 - 18:23) inpost написал(а):
Ну так сделай, как я сказал, и покажи строчки, где у тебя проблема.

Спустя 12 минут, 44 секунды (29.12.2011 - 18:36) killer8080 написал(а):
Гость_Сергей
а ты уверен что сам написал этот код? Кажется я его уже видел на этом форуме wink.gif biggrin.gif

Спустя 6 дней, 3 часа, 35 минут, 7 секунд (5.01.2012 - 22:11) 6yha написал(а):
inpost

"В чём, собственно, проблема? foreach - обход массива, $_POST, его сравни с результатами ответа."

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

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.