将答案从 HTML 发布到 php 以坐在一段时间循环中



我有一个HTML页面,其中包含多项选择题,表单设置为POST。单击提交时,它将运行 php 页面。 PHP 页面连接到我的数据库,其中包含正确答案等...我需要将用户答案从 HTML 页面获取到我的 php 页面中,但由于它处于循环中,它不能继续选择第一个问题答案。这可能吗? 我看了 3 天也没有快乐,这是一种耻辱,因为我的其余脚本工作正常。 任何指导都会很棒。谢谢

$x = 0;
$score = 0;  
while ($row = mysql_fetch_assoc($result)){
        echo "Question Number: " . $row['Questionid'] . '<br />';
        echo "Question: " . $row['Questiontext'] . '<br />';
        echo "Correct Answer: " . $row['Correctanswer'] . '<br />';
/** I want to POST the answer from the HTML form and call it    $value.  
My problem...no idea how to do this.  As it is in a loop each time it comes 
to this line it needs to also move down the HTML page i.e. to the second 
question etc...`*/

      echo "Your Answer: " . $value."n" . '<br />';
        echo "<br>";
        $correct = $row['Correctanswer'] ;
        if ($value == $correct ) {
            $score++; 

.HTML

   <select name="answer1"> 
                    <option>Tu </option>
                    <option>El</option>
                    <option>Yo</option>
                    <option>Ellos</option>
                    <option selected="selected"> </option>
                  </select>
                hablo </div></td>
            </tr>
            <tr>
              <td height="54"><div align="left" class="style15">2 - You drink </div></td>
              <td><div align="left" class="style13">
                  <select name="answer2">
                    <option>Nosotros</option>
                    <option>Tu</option>
                    <option>Vosotros</option>
                    <option>Yo</option>
                    <option selected="selected"> </option>
                  </select>

假设 HTML 中的答案输入字段<INPUT type='text' name='answer1'>其中 1 是数据库中的问题 ID。你的PHP应该是这样的:

$x = 0;
$score = 0;  
while ($row = mysql_fetch_assoc($result)){
        echo "Question Number: " . $row['Questionid'] . '<br />';
        echo "Question: " . $row['Questiontext'] . '<br />';
        echo "Correct Answer: " . $row['Correctanswer'] . '<br />';
        $value = htmlspecialchars ($_POST['answer' . $row['Questionid']]); 
        echo "Your Answer: " . $value."n" . '<br />';
        echo "<br>";
        $correct = $row['Correctanswer'] ;
        if ($value == $correct ) {
            $score++;
}

您必须按名称在 html 页面上获取输入。 即 然后在后端 PHP 上检索 input1 的值:$input 1 = $_POST['input1'];

你在哪里设置$value变量?你没有显示任何你的 HTML,所以我假设你有很长的表单,有很多问题。尝试制作一个答案数组,并得到类似的东西:

$corectAnswers=null;
while ($row = mysql_fetch_assoc($result)){
    $corectAnswers[]=$row;
}

然后,对于每个答案,请使用检查它是否正确:

foreach ($corectAnswers as $key => $value) {
    if($value==$userAnswers[$key]){
    $answers[]['isCorrent']=true;
    $score++;
    //do some html stuff here or after the end of foreach loop
    }else{
        $answers[]['isCorrent']=false;
        //again html
    }
}

您可以将表单输入元素 NAME 设置为包含 Questionid 的内容,例如<输入名称>并在 PHP 中动态引用它们。 在你的PHP中,它期望用户答案存储在$value中,你可以做这样的事情来动态检索POST数据:

$value=$_POST['ans'.$row['Questionid']];

这会根据数据库中的 questionid 找到表单的相关答案

最新更新