我现在要做一个在线考试系统(包含单项选择,多项选择,判断题), 为了使页面不至于太长, 所以要采取分页,  但是因为里面有多种题型(单项选择,多项选择,判断题), 我该怎么分呢, 另外, 分好页后, 学生考试时点击下一页后, 他又想到前一页修改,但是又没有保存所有答案, 怎么办??? 急需你的帮助, 已经做过的, 或者有好的办法的, 请给予帮助, 谢谢了!!!

解决方案 »

  1.   

    在线考试系统如果不是题量太多的话,最好还是不要分页的好,这样也方便使用js验证防止漏题。
    考试界面可以参考弹出全屏窗口形式
    保存的话,可以采用Ajax,做一题保存一题,缺点是增加了数据库操作
    仅供参考!!!
      

  2.   

    用户所作的答案可以缓存在Cookie中,翻页的时候也不会掉。当然发送到服务器上缓存更保险。为了减少提交频率加重服务器负担,可以每次换页的时候提交一次。 我的观点是这样: 
    1、每若干道题 一页,访问的时候动态生成。
    2、每次用户翻页时,先将当前做的答案保存到SESSION中,然后生成下一个页面。
    3、生成每道题时,先检查SESSION看这一题有没有做过,如果做过,则将答案一并发回。4、由于要想服务器提交数据,可能会比较大,所以要通过POST提交,页面就存在不能刷新的问题。可以考虑使用AJAX技术在后台提交数据,和下载新题。5、AJAX的使用不能过度,有些机器中毒后浏览器JS执行不了。这样你的程序就可能无法使用。6、浏览器上的刷新、前进、后退按钮的控制要注意。除非你新开没有工具栏的窗口(开了用户可以用快捷键刷新),你就不能阻止考生去点那个按钮。 这个方面处理要特别下功夫了。好像有个JQUERY 的history 插件可以管理。 但是我没有具体研究过。
      

  3.   

    按照楼上的, 那我这次有100道题, 应该是每个考生都要有100个SESSION变量, 每次点击下一页时, 要先将这一页的数据给保存到SESSION变量中, 最后, 再来一个总的POST到数据库, 是这样吗?
    另外, 我的题(包含单项选择,多项选择,判断题)是分别保存到三个数据表中的, 是不是要分别分页了??
      

  4.   

    SESSION中放答案数组就可以了。如果是光答案的话应该没有多大吧。 最后点交卷的时候,将数据插入数据库中 就是了,具体那个答案需要插入那个表都可以。 不需要单独考虑。 想数据库保存的时候是从SESSION中取值,不用去考虑分页问题。