Как увеличить переменную и записать значение переключателя на серии страниц? - PullRequest
0 голосов
/ 15 октября 2011

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

У меня есть переменная для вопросачисло ($qn), которое при увеличении меняет вопрос, и четыре возможных варианта выбора следующего вопроса в базе данных.

У меня такой вопрос: как я могу иметь кнопку в главной форме, чтобы (как только пользователь выбрал переключатель, он записывает результат переключателя, затем увеличивает $qn, чтобы отобразить следующий вопрос, затем выполняет этот процесс снова, до $qn == $numberOfQuestions, в этот момент ему нужно показать страницу results.php исуммируйте результаты всех переключателей на странице quiz.php.

Я новичок в PHP, поэтому извините, если это особенно глупый вопрос или я сформулировал его неясным образом.И я очень открыт для предложений, если есть более простой или более эффективный способ сделать это.

Заранее благодарен за любые ответы, очень благодарен :)

Ответы [ 2 ]

1 голос
/ 15 октября 2011

Вы просто обрабатываете ввод данных формы, сохраняете значение и переходите к следующему вопросу.

Простой пример ( Демо ):

<h1>Quiz</h1>
<?php
$quiz = load_quiz();
$states = isset($_GET['state']) ? explode(',', $_GET['state']) : array();
$states = array_map('intval', $states);
$page = count($states)+1;

if (isset($_POST['answer']))
{
     $states[$page-1] = (int) $_POST['answer'];
}

if ($page > count($quiz))
{
?>
<h2>Your selection:</h2>
<?php
foreach($quiz as $key => $question)
{    
    $state = $states[$key];
    $answer = $question['answers'][$state];
    printf('%s: %s<br />', $question['question'], $answer);
}

}
else
{
?>
<h2><?php echo $quiz[$page]['question']; ?></h2>
<form method="post" action="?state=<?php echo implode(',', $states); ?>">
<?php
foreach($quiz[$page]['answers'] as $key => $answer)
{
    printf(
        '<input type="radio" name="answer" id="answer-%d" value="%d"><label for="answer-%d">%s<label><br>',
        $key, $key, $key, $answer
    );
}
?>
<input type="submit" value="Next">
</form>
1 голос
/ 15 октября 2011

Похоже, вы должны использовать JavaScript с AJAX-запросами. Обнаружение при выборе радиокнопки возможно только с помощью JavaScript. Вы можете использовать библиотеку, чтобы сделать вашу жизнь проще, как jQuery. Посмотрите на функции, такие как onChange событие. А также Ajax

...