如何增加变量,并在一系列页面上记录单选按钮的值


How to increment a variable, and record value of a radio button over a series of pages?

我正在制作一个基本的测验程序,当完成后将允许用户完成从MySQL数据库中读取的测验,并将测验写入数据库中。

我有一个问题号变量($qn),当它递增时改变问题,以及数据库中下一个问题的四个可能选择。

我的问题是:我怎么能有一个按钮在我的主要形式,(一旦用户选择了一个单选按钮)记录单选按钮的结果,然后增加$qn显示下一个问题,然后再次做这个过程,直到$qn == $numberOfQuestions,在这一点上,它需要显示页面结果。php和添加从所有的单选按钮在quiz.php页面的结果。

我对PHP很陌生,所以如果这是一个特别愚蠢的问题,或者如果我用一种不清楚的方式表达它,那么很抱歉。我非常愿意听取建议,是否有更简单或更有效的方法来做到这一点。

提前感谢您的任何回答,真的很感激:)

您只需处理表单输入,存储值并继续进行下一个问题。

一个基本的例子(Demo):

<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="answerswer" id="answerswer-%d" value="%d"><label for="answerswer-%d">%s<label><br>',
        $key, $key, $key, $answer
    );
}
?>
<input type="submit" value="Next">
</form>

听起来像你应该使用JavaScript与AJAX请求。要检测何时选择了单选按钮,只能使用JavaScript。您可以使用像jQuery这样的库来简化您的工作。研究一下像onChange事件这样的函数。还有Ajax