我正在网上免费考试网站上工作。使用PHP,jQuery&会话我正在显示前端选择的问题。如果用户点击显示的选项中的任何选项(对于所有选项具有相同名称的单选按钮),我将存储选定的问题编号和放大器。在会话变量中选择(作为answer1 / answer2直到answer2),添加当前quesno
&选择前一个。
问题是如果我想改变我已经回答的答案,它只是作为新结果而不是更新。
我试图循环遍历该会话变量但卡住了。以下是我存储在会话变量中的数据格式。
if( $_POST['qno'] && $_POST['choice'] ){
$ques_no = $_POST['qno'];
$selected_choice = $_POST['choice'];// choices in radio buttons with name choice
if( isset($_SESSION['result']) ){
//here i'm trying to loop though $_SESSION['result'] to check the below format
>> ','.$ques_no.',' << in session so that it can be changed, i stuck here.
$_SESSION['result']=$_SESSION['result'].','.$ques_no.','.$selected_choice.'|';
}else{
$_SESSION['result'] = ','.$ques_no.','.$selected_choice.'|';
}
}
如果这个程序可以遵循,请告诉我循环过程并检查会话中是否存在该模式;如果是错误的程序,请指导我。
答案 0 :(得分:2)
实现此目的的最简单方法是使$_SESSION['result']
成为数组而不是字符串。然后你不必担心if语句,除了确保$_SESSION['result']
存在,你只需在一步中分配值就完成了:
if (!isset($_SESSION['result'])) $_SESSION['result'] = array();
$_SESSION['result'][$ques_no] = $selected_choice;
请确保您编辑其他代码以将$_SESSION['result']
解释为数组,否则您将获得一些意外结果。
答案 1 :(得分:0)
我更喜欢你在市场上购买可用的在线脚本作为它的起点。这将节省您的时间,成本和测试工作。
下面是我使用它的一个很好的脚本,它像魅力一样工作。以此为基础,我使用计算机自适应测试开发了一个超过1000个用户的在线测试门户。
http://codecanyon.net/item/online-skills-assessment/9379895
对于希望开发在线考试系统的人来说,这是一个很好的起点。