首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将答案从在线考试系统存储到数据库

如何将答案从在线考试系统存储到数据库
EN

Stack Overflow用户
提问于 2014-06-28 07:23:02
回答 2查看 2.6K关注 0票数 0

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

用于获取问题的php代码

代码语言:javascript
复制
 $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

代码语言:javascript
复制
<script>
function answ(answer) {
document.getElementById("ansval").value = answer;
}
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-28 07:51:35

单选按钮名称对所有问题都是一样的。您必须为每个答案集动态地设置单选按钮的名称。您可以使用以下代码:

代码语言:javascript
复制
$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函数看起来如下:

代码语言:javascript
复制
<script>
function answ(answer,qId) {
document.getElementById("ansval"+qId).value = answer;
}
</script>

在提交答案之后,您可以以同样的方式获得提交的值。$_POST‘’ansval‘.$ question;在获得值之前,您必须创建另一个循环来获取所有问题Ids。

票数 2
EN

Stack Overflow用户

发布于 2014-06-28 07:32:53

ID字段必须是唯一的++$counter;回波“;

代码语言:javascript
复制
$_POST['ansval1'],$_POST['ansval2'],$_POST['ansval3'].....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24464619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档