前段时间用MVC做了个在线考试系统, 前台主要是用户登陆后选择科目参加考试,所有的题目都是从LIST里用标签动态遍历出来,都是单选框(单选题),每组题name一样,每个题有个唯一的正确答案,在用户交卷后如何得到用户提交的答案? 想了几个解决方案:
1、用ajax,对ajax研究不深,虽然是解决这个的最好办法,但是没去研究,有
2、一道题目一道题目提交,这样做是简单的,但是也是最繁琐的,因为每做一次提交一次,如果访问量大的话服务器负担会很大,而且也不敢保证用户的耐心,不支持用这个方法
3、用JAVAScript,分页提交,先把题目分页显示,比如数据库有200道题目,每页10道题目,这样在Script中array数组长度可以定义为10,每次点击单选框时通过name去得到相应的值
//定义全局arr var arr = new Array("","","","","","","","","",""); function setkey1(name){ arr[1] = name; count(); } function setkey2(name){ arr[2] = name; count(); } function setkey3(name){ arr[3] = name; count(); } function setkey4(name){ arr[4] = name; count(); } function setkey5(name){ arr[5] = name; count(); } function setkey6(name){ arr[6] = name; count(); } function setkey7(name){ arr[7] = name; count(); } function setkey8(name){ arr[8] = name; count(); } function setkey8(name){ arr[9] = name; count(); } function setkey8(name){ arr[10] = name; count(); } //每一组单选框调用一个方法,将本身的value传进去赋给arr,调用count()方法拼接赋给box隐藏域 function count(){ box.value =arr[0] +arr[1] +arr[2] +arr[3] +arr[4] +arr[5] +arr[6] +arr[7] +arr[8] +arr[9] +arr[10]; //box为一隐藏域 }
提交后在servlet中得到隐藏域的值即可。
提交后可由用户选择是否继续进行考试,不继续则计算总分,继续则显示下一页题目。
各位有更好的办法请多多指教!