题库共有500道题,每次刷新都随机抽取20道作为试题,答案有A,B,C,D,E,如何获取用户选择的答案并与正确答案对比并记录答对的题号

解决方案 »

  1.   

    radio box:
    quistion[qid][A]
    quistion[qid][B]
    ....
    post即可。
    题目表中加一字段,保存该题的正确选项。
    只是对比正确的题目,一个查询就OK。
      

  2.   

    <?php
    if(!empty($answerList)){
    $i=1;

    foreach($answerList as $buf){

    ?>  
            <tr>
              <td width="60" height="25" align="center"><b>第<?php echo $i?>题:</b></td>
              <td align="left"><?php echo $buf['questions']; ?></td>
      <td align="left"></td>  
            </tr>
    <tr>
              <td width="60" height="25" align="center"></td>
              <td align="left"><?php 
    if(!empty($buf['hda'])) echo "A".":".$buf['hda'].";";
    if(!empty($buf['hdb'])) echo "B".":".$buf['hdb'].";";
    if(!empty($buf['hdc'])) echo "C".":".$buf['hdc'].";";
    if(!empty($buf['hdd'])) echo "D".":".$buf['hdd'].";";
    if(!empty($buf['hde'])) echo "E".":".$buf['hde'].";";?>
      </td>
            </tr>
    <tr>
              <td width="60" height="25" align="center"></td>
              <td align="left"><input type='radio' name='".$array[id]."' value="A">A
    <input type='radio' name='".$array[id]."' value="B">B  
    <input type='radio' name='".$array[id]."' value="C">C
    <input type='radio' name='".$array[id]."' value="D">D   </td>
            </tr>
     

      <?php
      $i++; }
      
                                }
    ?>问题:假设第一题我选A,做第二题时选B,第一题的A就取消了
      

  3.   

    其实这个问题,如果你变通一下应该很简单的,两种方案方案一:与数据库的数据进行对比。又分两种情况:情况一:每页只有一题的,每做一道题就与数据库中的数据进行对比下,将正确或错误的结果记录中SESSION中,当然你也可以记录其他有关的东西,如他选择了什么,这道题的ID等!情况二:所有的题全部在一页,采用一楼所说的方法进行操作!
    方案二: 将正确答案加密后(你可以两次或三次或更多次md5()加密,只要你喜欢)放入页面的隐藏域中,每一试题对应一个隐藏域,再将用户的选择答案加密后与隐藏域中的答案进行对比!本方案不管一页有一道或多道题,都可行!而且在用户提交后不用进行数据库查询!
    个人推荐方案二!
      

  4.   

    if(!empty($answerList)){
    $i=1;
    foreach($answerList as $buf){
    $_SESSION['answer'][$i]=$buf['id'];
    echo $buf['id'];
    echo "-";
    echo $_SESSION['answer'][$i];
    $i++;
    }
    }
    打印结果
    107-1
    418-4
    91-9
    ...怎么只保存了第一个字符