【问题标题】:Dynamic Quiz App Answer Validation issue in PHPPHP中的动态测验应用程序答案验证问题
【发布时间】:2015-07-22 05:47:42
【问题描述】:

我有一个具有这种结构的数据库并且我有 4 个问题。我的工作是显示 2 个随机问题及其选项,当用户点击提交时,它应该检查 correct_ans 并显示结果。

Qid | Question | A | B | C | D | Correct_ans
1   | Question |   |   |   |   |Correct Ans
2   | Question |   |   |   |   |Correct Ans
3   | Question |   |   |   |   |Correct Ans
4   | Question |   |   |   |   |Correct Ans

这是我的代码

<?php
if(isset($_POST['test'])){
$x = $_POST["$id"];
echo $x;
}
?>
<html>
<head>
</head>
<body>

<?php 
include("db-con.php");
$sql1 = "SELECT * from questions ORDER BY RAND() LIMIT 2";
$result1 = mysql_query($sql1,$con);

    echo"<form method='post' action=''>";
    while($row1 = mysql_fetch_assoc($result1))
    {
         $id = 'q' . $row1['quesid'];
         $question = $row1['question'];
         $solution = $row1['solution'];
         $ans_array = array($row1['A'],$row1['X'],$row1['Y'],$row1['Z']);
         $test = shuffle($ans_array);
    // Generate Questions and Display Options   

        echo $question . '<br />';
        echo "<input type='radio' value='$ans_array[0]' name=\"$id\" />" . $ans_array[0]. '<br />';
        echo "<input type='radio' value='$ans_array[1]' name=\"$id\" />" . $ans_array[1] .  '<br />';
        echo "<input type='radio' value='$ans_array[2]' name=\"$id\" />" . $ans_array[2] .  '<br />';
        echo "<input type='radio' value='$ans_array[3]' name=\"$id\" />" . $ans_array[3] .  '<br />';

     }
    echo"<input type='submit' name='test' Value='Submit' />";
    echo"</form>";


?>


</body>
</html>

我的问题是

当我点击提交时,我无法获取问题 ID,也无法从数据库中检查。当我尝试访问$id 来检查所选答案时,我总是遇到索引错误。

如果我理解正确$id 不是全局变量,这就是为什么我在提交表单后没有得到它。我尝试将$id 设置为全局但又出现同样的错误。

谁能帮我找到这个解决方案。

感谢和问候 货车

【问题讨论】:

  • 您提供了有效的代码而不是无效的代码,这是您遇到问题的代码,您需要我们帮助您修复哪些代码?这对你来说没有什么奇怪的吗?看到小问题了吗?
  • 我想知道点击提交后如何捕获值以及如何检查结果。我不确定我应该走什么路
  • 好吧,您为每个input 字段赋予的name 属性将显示在$_POST 中。您将$id 放在那里,这不太可能是您的本意。而是将$id 放入隐藏输入(例如&lt;input type="hidden" name="id" value="$id"&gt; 并将您的答案输入命名为name="answer",然后您分别从$_POST['answer']$_POST['id'] 获取值。
  • 你能告诉我代码吗?我没有得到你。但我正在寻找隐藏的东西可能我会有所了解。无论如何,谢谢指导我。干杯
  • 我刚做了。你读了吗?

标签: php mysql arrays database


【解决方案1】:

下面的代码是生成随机问题。这将选择随机问题。

function randomGen($min, $max, $quantity) 
{    
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}

$a = (randomGen(1,4,3)); //generates 2 unique random numbers


for($i=1;$i<=2;$i++){
  $q = $a[$i];    
}

要检索 id,您必须添加隐藏字段

&lt;input type="hidden" name="id" id="id" value="value of id whicch is generated by random number"&gt;

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多