是否有PHP或jQuery替代方法来使用表单来记录用户做出的选择?
让我给你一些背景......
我想为我的网站创建一些测试和测验,结合PHP,JQuery,Bootstrap等。我是一个中级PHP编码器,刚刚开始学习jQuery和Boostrap,所以我不会'我真的非常了解大局。
无论如何,我找到了一个简单的基于PHP的测验教程,然后对其进行了修改,以便将问题和答案存储在数据库表中。我还添加了一个jQuery函数 - 可以切换的样式 - 尽管它有一些bug。最后,我想以某种方式修改它以便存储数据 - 例如,用户可以找到他们以前的分数。
我修改了代码,以便当用户点击提交按钮时,用户不会将用户转发到新页面,而是停留在同一页面上。 (这个想法是用户可以选择一系列答案,当用户点击提交按钮时,CSS用于突出显示正确和错误的答案。)问题是当你刷新页面时你会得到一个&#34 ;确认表格重新提交"消息。
另一个问题是,我可以1)用INPUT功能提交用户的答案,或2)用BUTTON切换样式。我需要弄清楚如何用一个或另一个来做这两个功能(当用户点击"提交,"页面显示新的样式,以及用户的分数)。
所以在我开始处理这些问题(以及其他一些问题)之前,我想确保我朝着正确的方向前进。我应该解决这些问题,还是应该简单地删除表单,用一些PHP或jQuery替代它?如果有这样的选择,它叫什么,所以我可以研究它?
我一直在阅读一些jQuery函数,但我还没有找到灵丹妙药。
我在下面发布了我的代码,因此您可以了解我在哪里。
<form action="" method="post" id="quiz">
$stmt = $pdo->prepare("SELECT Q.QID, Q.URL, Q.Value, Q.Question, Q.Answer, Q.Correct
FROM 1_quiz Q
ORDER BY Q.N
");
$stmt->execute(array(
'MyURL'=>$MyURL
));
$Q1 = null;
echo '<div class=\"OuterWrapper\">';
while ($row = $stmt->fetch()) {
$QID = $row['QID'];
$URL = $row['URL'];
$Value = $row['Value'];
$Question = $row['Question'];
$Answer = $row['Answer'];
$Correct = $row['Correct'];
$Correct = str_replace('1', 'correct', $Correct);
$Correct = str_replace('2', 'wrong', $Correct);
$Q2 = '
<div class="Question"><b>'.$Question.'</b></div>';
if ($row["Question"] != $Q1) {
$Q1 = $row["Question"];
echo "</div>
<div class=\"OuterWrapper\">{$Q2}\n";
}
echo ' <div class="Answer '.$Correct.'"><input type="radio" name="'.$QID.'" id="quiz" value="'.$Value.'" /> '.$Answer.'</div>' . "\n";
}
echo '</div>
';
<script>
$(document).ready(function(){
$("input#quiz").click(function(){
$(".Answer").toggleClass("Submit");
});
});
</script>
<input type="submit" value="Submit Quiz" id="quiz" style="">
</form>
<button type="submit" value="Submit Quiz" id="quiz" style="">Button</button>
$answer1 = $_POST['1'];
$answer2 = $_POST['2'];
$answer3 = $_POST['3'];
$totalCorrect = 0;
if ($answer1 == "A") { $totalCorrect++; }
if ($answer2 == "C") { $totalCorrect++; }
if ($answer3 == "C") { $totalCorrect++; }
echo "<div id='results'>$totalCorrect / 3 correct</div>";