gpt4 book ai didi

php - 如何在提交PHP后为每个页面编写检查答案功能

转载 作者:行者123 更新时间:2023-11-29 22:15:29 26 4
gpt4 key购买 nike

我正在为一个特定项目编写一个测验程序,并且我已经设置了所有基本功能。

基本上它现在所做的是:

  1. 开始测验

  2. 尝试多项选择测验

  3. 前往结果页面查看您的分数

通常这是创建测验器的常用方法。但是,我想让回答者直接在该页面上提交答案后,就可以在该特定问题页面上知道他们的答案是否正确。

但我不知道该怎么做。

我尝试在线搜索教程,但我找不到任何教程可以让回答者在他们正在回答的问题页面上现场检查答案。

我还尝试使用 PHP 变量将他们的选择与正确答案进行比较,但计算机反馈并说该变量未定义,即使它已正确定义。

然后我将整个 process.php 文件转移到 Question.php 文件中,以确保在 Question.php 中定义变量。然而计算机仍然反馈给我变量 $ Correct_choice $selected_choice 没有定义。

下面是 Question.php 的代码,其中设置问题仅供引用:

<?php 

include 'database.php';
session_start();

$number=(int)$_GET['n'];
$query = "SELECT*FROM questions
WHERE question_number = $number";
$result = mysqli_query($con,$query);

$question = mysqli_fetch_assoc($result);

$query2 = "SELECT*FROM choices
WHERE question_number = $number";
$choices = mysqli_query($con,$query2);

$query="SELECT* FROM questions";
$results= mysqli_query($con,$query);
$total=$results->num_rows;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>BTT Quizzer</title>
<link rel="stylesheet" href="css/style.css" type="text/css"/>
</head>

<body>
<header>
<div class="container">
<h1>BTT Quizzer</h1>
</div>
</header>

<main>
<div class="container">
<div class="current">Question <?php echo $question['question_number']; ?> of <?php echo $total; ?></div>
<p class="question">
<?php echo $question['text']?>
</p>
<form method="post" action="">
<ul class="choices">
<?php while($row=mysqli_fetch_assoc($choices)): ?>
<li><input name="choice" type="radio" value="<?php echo $row['id']?>"/><?php echo $row['text']?></li>
<?php endwhile; ?>

</ul>
<input type="submit" value="submit" name="submit"/>
<input type="hidden" name="number" value="<?php echo $number; ?>"/>
</form>

<div class="feedback">
<?php if($correct_choice == $selected_choice){
echo "Thats Correct!";
}
?>
</div>

<div class="feedback2">
<?php if($correct_choice != $selected_choice){
echo "Thats Wrong!";
}
?>
</div>
</div>
</main>

<footer>
<div class="container">
Copyright &copy;2014,BTT Quizzer
</div>
</footer>
</body>
</html>

下面是 process.php 的代码仅供引用:

include 'database.php';
session_start();

if(!isset($_SESSION['score'])){
$_SESSION['score'] = 0;
}

if(isset($_POST['submit'])){
$number=$_POST['number'];
$selected_choice = $_POST['choice'];
$next=$number+1;

$query="SELECT*FROM questions";
$results= mysqli_query($con,$query);
$total=$results->num_rows;

$query = "SELECT*FROM`choices` WHERE question_number = $number AND is_correct=1";
$results= mysqli_query($con,$query);
$row=$results->fetch_assoc();
$correct_choice=$row['id'];

if($correct_choice == $selected_choice){
$_SESSION['score']++;
}

if($number == $total){
header("Location: final.php");
exit();
} else {
header("Location: question.php?n=".$next);
}
}

最佳答案

已解决:

使用 super 全局 $_SESSION 从 process.php 获取变量,并使用条件将其回显到 Question.php 中。

关于php - 如何在提交PHP后为每个页面编写检查答案功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com