无法在行动中传输的无线电值=“#”

时间:2015-04-03 19:48:01

标签: php

我正在尝试创建一个不会更改页面名称的测验。我能够更改页面的内容,但同时,我无法获取问题的值并检查选项是否正确。 请告诉我我在哪里弄错了。如果答案是正确的,我想奖励4分,如果答案错误,我想要扣除1分。我正在从数据库中提取问题和选项。

以下是quiz.html的代码

<html>
<head>
<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tests";
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$id=1;
$sql = "SELECT question, opt1,opt2,opt3,opt4,correct FROM quiz where id='$id'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

        $question=$row["question"];
        $opt1=$row["opt1"];
        $opt2=$row["opt2"];
        $opt3=$row["opt3"];
        $opt4=$row["opt4"];
        $correct=$row["correct"];


    }
} else {
    echo "0 results";
}

$conn->close();
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $("#div1").load("q2.php");
    });
});
</script>

</head>
<body>
<div id="div1">
<form action="q2.php" method="POST">
<h3><?php echo $question;?></h3>

<input type='radio' name='choices' value='A'><?php echo $opt1;?></br>
<input type='radio' name='choices' value='B'><?php echo $opt2;?></br>
<input type='radio' name='choices' value='C'><?php echo $opt3;?></br>
<input type='radio' name='choices' value='D'><?php echo $opt4;?></br>
</form>
<button type ="submit">Next</button>

</div>


</body>
</html>

以下是显示第二个问题的代码等等。(q2.php)

<html>
<head>
<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tests";
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$id=2;
$sql = "SELECT question, opt1,opt2,opt3,opt4,correct FROM quiz where id='$id'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

        $question=$row["question"];
        $opt1=$row["opt1"];
        $opt2=$row["opt2"];
        $opt3=$row["opt3"];
        $opt4=$row["opt4"];
        $correct=$row["correct"];


    }
} else {
    echo "0 results";
}

$conn->close();


?>


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $("#div1").load("result.php");
    });
});

</script>

</head>
<body>
<div id="div1">
<form action="results.php" method="POST">
<h3><?php echo $question;?></h3>
<input type='radio' name='choices' value='A'><?php echo $opt1;?></br>
<input type='radio' name='choices' value='B'><?php echo $opt2;?></br>
<input type='radio' name='choices' value='C'><?php echo $opt3;?></br>
<input type='radio' name='choices' value='D'><?php echo $opt4;?></br>

</form>
<button>Next</button>
</div>


</body>
</html>

现在如何在页面results.php上显示最终结果? 附:我是新手。请不要认为我很专业。

1 个答案:

答案 0 :(得分:0)

当您将结果提交到results.php时,您需要从数据库中获取正确的答案,并且需要将它们与输入的答案进行比较。

  

我无法获取问题的值并检查选项是否正确

你能详细说明吗?您应该只需在PHP代码中执行$_POST['choices']即可获取帖子值。

请注意,如果您不以某种方式在页面请求之间存储提交的值,那么您将无法获取以前的提交。为了澄清,如果您在第一页上提交第一个答案,然后在第二页上提交第二个答案,您将不会再次收到第一个答案 - 因此,如果您没有处理该数据或商店要稍后处理,你就会失去它。

正因为如此,我建议采用与您正在做的相比不同的方法。您应该在一个页面上获取并显示所有问题,而不是一次在不同的页面上提交一个答案。如果有必要,使用jQuery一次隐藏一个,但不要提交任何内容,直到所有问题都得到解答。然后使用jQuery post函数将表单数据发送到results.php进行处理和显示。

  

如果答案是正确的,我想奖励4分,如果答案错误,我想扣除1分。

这一切都需要在results.php代码中完成。如果您想存储谁有正确/错误的问题的数据,那么您需要将该信息存储在表格中(与您的问题存储在同一个表中)。此外,请记住,您需要使$id变量动态化,除非您希望每个人都有相同的结果。