我可以在没有表格的情况下显示用户选择

时间:2015-01-01 15:12:23

标签: php jquery

是否有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>";

0 个答案:

没有答案