gpt4 book ai didi

带有屏幕结果的 PHP 测验

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:10 29 4
gpt4 key购买 nike

我正在尝试根据找到的教程创建一个简单的测验。 http://css-tricks.com/building-a-simple-quiz/

不幸的是,这让我无法自拔,答案可能非常简单。

我让这个工作完美。我想更改功能。我不希望它计算答案,而是希望它做些别的事情。

  1. 我想再次显示问题。
  2. 还有选择的答案和正确答案。回显答案,不是字母 A、B、C、D。

在我看来,进行测验并说你错过了 2 道而不显示错过了什么问题,这对我来说似乎很愚蠢。

我宁愿避免使用数据库。它可以在屏幕上、新屏幕上或通过电子邮件发送。没有偏好。有什么建议吗?

这是上述网站的代码:

<form action="grade.php" method="post" id="quiz">
<li>

<h3>CSS Stands for...</h3>

<div>
<input type="radio" name="question-1-answers" id="question-1-answers-A" value="A" />
<label for="question-1-answers-A">A) Computer Styled Sections </label>
</div>

<div>
<input type="radio" name="question-1-answers" id="question-1-answers-B" value="B" />
<label for="question-1-answers-B">B) Cascading Style Sheets</label>
</div>

<div>
<input type="radio" name="question-1-answers" id="question-1-answers-C" value="C" />
<label for="question-1-answers-C">C) Crazy Solid Shapes</label>
</div>

<div>
<input type="radio" name="question-1-answers" id="question-1-answers-D" value="D" />
<label for="question-1-answers-D">D) None of the above</label>
</div>

</li>
</form>
<input type="submit" value="Submit Quiz" />

然后是 PHP 脚本:

<?php

$answer1 = $_POST['question-1-answers'];
$answer2 = $_POST['question-2-answers'];
$answer3 = $_POST['question-3-answers'];
$answer4 = $_POST['question-4-answers'];
$answer5 = $_POST['question-5-answers'];

$totalCorrect = 0;

if ($answer1 == "B") { $totalCorrect++; }
if ($answer2 == "A") { $totalCorrect++; }
if ($answer3 == "C") { $totalCorrect++; }
if ($answer4 == "D") { $totalCorrect++; }
if ($answer5) { $totalCorrect++; }

echo "<div id='results'>$totalCorrect / 5 correct</div>";

?>

如有任何建议或链接,我们将不胜感激。我的 Google 技能让我失望了。我认为要搜索的所有内容都会带来不相关的内容。

最佳答案

为了能够回应答案,而不是你需要先存储问题的字母。您不需要使用数据库,只需使用数组即可。

如果您打算使用数组,我建议您将所有内容都存储在一个数组中。由于 html 的结构完全相同,因此可以节省很多时间。您可以只写一次问题并在整个脚本中自动实现它。

<?php 

$Questions = array(
1 => array(
'Question' => 'CSS stands for',
'Answers' => array(
'A' => 'Computer Styled Sections',
'B' => 'Cascading Style Sheets',
'C' => 'Crazy Solid Shapes'
),
'CorrectAnswer' => 'A'
),
2 => array(
'Question' => 'Second question',
'Answers' => array(
'A' => 'First answer of Second question',
'B' => 'Second answer Second question',
'C' => 'Third answer Second question'
),
'CorrectAnswer' => 'C'
)
);

if (isset($_POST['answers'])){
$Answers = $_POST['answers']; // Get submitted answers.

// Now this is fun, automated question checking! ;)

foreach ($Questions as $QuestionNo => $Value){
// Echo the question
echo $Value['Question'].'<br />';

if ($Answers[$QuestionNo] != $Value['CorrectAnswer']){
echo '<span style="color: red;">'.$Value['Answers'][$Answers[$QuestionNo]].'</span>'; // Replace style with a class
} else {
echo '<span style="color: green;">'.$Value['Answers'][$Answers[$QuestionNo]].'</span>'; // Replace style with a class
}
echo '<br /><hr>';
}
} else {
?>
<form action="grade.php" method="post" id="quiz">
<?php foreach ($Questions as $QuestionNo => $Value){ ?>
<li>
<h3><?php echo $Value['Question']; ?></h3>
<?php
foreach ($Value['Answers'] as $Letter => $Answer){
$Label = 'question-'.$QuestionNo.'-answers-'.$Letter;
?>
<div>
<input type="radio" name="answers[<?php echo $QuestionNo; ?>]" id="<?php echo $Label; ?>" value="<?php echo $Letter; ?>" />
<label for="<?php echo $Label; ?>"><?php echo $Letter; ?>) <?php echo $Answer; ?> </label>
</div>
<?php } ?>
</li>
<?php } ?>
<input type="submit" value="Submit Quiz" />
</form>
<?php
}
?>

这很酷,如果您想添加另一个问题,您不需要添加任何 HTML 或任何东西。只需添加问题及其答案,正确答案即可自动运行!顺便说一句,这是一个文件,而不是 2 个。所以它应该提交给自己。

关于带有屏幕结果的 PHP 测验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15482190/

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