【问题标题】:how to store answers from an online examination system to database如何将在线考试系统中的答案存储到数据库中
【发布时间】:2014-08-19 07:39:25
【问题描述】:

我正在创建一个在线考试系统,从数据库中获取问题和答案,并在单选按钮中显示选项。但是,问题是如果我点击保存它只会保存一个答案而不是所有问题的答案

获取问题的php代码

 $quer=" SELECT * FROM questionset ORDER BY RAND() ";
 $query=mysqli_query($sql,$quer);
while($row = mysqli_fetch_array($query))
  {
  $na= $row['qus'];
  $opa= $row['opa'];
   $opb= $row['opb'];
  $opc= $row['opc'];
    $opd= $row['opd'];

 echo "<div class='pr3'>";

echo "<div id='question'>";
echo $na;
echo "</div>";
echo "<br/>";
echo "<form name='cart' method='post'>";
echo "<input type='radio' name='ans' value='" . $opa. "' onclick='answ(this.value)' >";
echo $opa;
echo "<br/>";
echo "<input type='radio' name='ans' value='" . $opb. "' onclick='answ(this.value)'>";
echo $opb;
echo "<br/>";
    echo "<input type='radio' name='ans' value='" . $opc. "' onclick='answ(this.value)'>";
echo $opc;
echo "<br/>";
echo "<input type='radio' name='ans' value='" . $opd. "' onclick='answ(this.value)'>";
echo $opd;
echo "<br/>";
echo "<input type='text' id='ansval' name='ansval' >";
    echo "</form>";

 echo " </div>";

  }

只更新一个文本框的Javascript

<script>
function answ(answer) {
document.getElementById("ansval").value = answer;
}
</script>

【问题讨论】:

  • 您没有显示任何类似代码来保存答案。
  • 当有人单击单选按钮时,我在文本框中显示单选按钮的值,但它只是在一个文本框中更新答案,这就是我没有尝试保存按钮的原因。请检查已编辑的问题

标签: php mysql


【解决方案1】:

ID 字段必须是唯一的 ++$计数器; 回声“”;

$_POST['ansval1'],$_POST['ansval2'],$_POST['ansval3'].....

【讨论】:

  • 那个计数器怎么用?
【解决方案2】:

所有问题的单选按钮名称都相同。您必须为每个答案集动态地制作单选按钮名称。您可以使用以下代码:

$quer=" SELECT * FROM questionset ORDER BY RAND() ";
 $query=mysqli_query($sql,$quer);
while($row = mysqli_fetch_array($query))
  {
  $questionId = $row['questionId']; //primary key of question table
  $na= $row['qus'];
  $opa= $row['opa'];
   $opb= $row['opb'];
  $opc= $row['opc'];
    $opd= $row['opd'];

 echo "<div class='pr3'>";

echo "<div id='question'>";
echo $na;
echo "</div>";
echo "<br/>";
echo "<form name='cart' method='post'>";
echo "<input type='radio' name='ans<?php echo $questionId; ?>' value='" . $opa. "' onclick='answ(this.value,'<?php echo $questionId; ?>')' >";
echo $opa;
echo "<br/>";
echo "<input type='radio' name='ans<?php echo $questionId; ?>' value='" . $opb. "' onclick='answ(this.value,'<?php echo $questionId; ?>')'>";
echo $opb;
echo "<br/>";
    echo "<input type='radio' name='ans<?php echo $questionId; ?>' value='" . $opc. "' onclick='answ(this.value,'<?php echo $questionId; ?>')'>";
echo $opc;
echo "<br/>";
echo "<input type='radio' name='ans<?php echo $questionId; ?>' value='" . $opd. "' onclick='answ(this.value,'<?php echo $questionId; ?>')'>";
echo $opd;
echo "<br/>";
echo "<input type='text' id='ansval<?php echo $questionId; ?>' name='ansval<?php echo $questionId; ?>' >";
    echo "</form>";

 echo " </div>";

  } 

你的javascript函数看起来像:

<script>
function answ(answer,qId) {
document.getElementById("ansval"+qId).value = answer;
}
</script>

答案提交后,您可以通过相同的方式获取提交的值。即 $_POST['ansval'.$questionId];在获取值之前,您必须创建另一个循环来获取所有问题 ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2020-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2021-05-31
    相关资源
    最近更新 更多