0

我正在开发在线免费考试网站。使用 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.'|';
    }
}

如果这个过程可以遵循,请告诉我循环的过程并检查会话中是否存在该模式;如果是错误的程序,请指导我。

4

2 回答 2

2

实现这一点的最简单方法是创建$_SESSION['result']一个数组而不是一个字符串。然后你根本不必担心 if 语句,除了确保$_SESSION['result']存在,你只需在一个步骤中分配值,你就完成了:

if (!isset($_SESSION['result'])) $_SESSION['result'] = array();
$_SESSION['result'][$ques_no] = $selected_choice;

只要确保您编辑其他代码以解释$_SESSION['result']为数组,否则您会得到一些意想不到的结果。

于 2013-09-10T14:27:45.643 回答
0

我更喜欢你在市场上购买可用的在线脚本作为它的起点。这将节省您的时间、成本和测试工作。

下面是我使用它的优秀脚本之一,它就像魅力一样。以此为基础,我使用计算机自适应测试开发了一个拥有 1000 多个用户的在线测试门户。

http://codecanyon.net/item/online-skills-assessment/9379895

对于希望开发在线考试系统的人们来说,这是一个很好的起点。

于 2014-12-05T06:25:49.490 回答