【发布时间】: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放入隐藏输入(例如<input type="hidden" name="id" value="$id">并将您的答案输入命名为name="answer",然后您分别从$_POST['answer']和$_POST['id']获取值。 -
你能告诉我代码吗?我没有得到你。但我正在寻找隐藏的东西可能我会有所了解。无论如何,谢谢指导我。干杯
-
我刚做了。你读了吗?