我在做一个在线答题系统,通过$answer[]数">
时间:2021-07-01 10:21:17 帮助过:24人阅读
每次收到提交就 $_SESSION[] = $_POST; 提交的表单最好有题号,这样便于识别
我现在将$_SESSION的值改为 $_SESSION=array("id"=>$_POST['i'],"answer"=>$_POST['style1']); 重新创建一个数组 $array=array("id"=>"","answer"=>""); 将$_SESSION和$array递归合并给$result $result=array_merge_recursive($_SESSION,$array); 读出第一题时2个数组都没有值,所以打印出的结果 Array ( [id] => [answer] => ) //SESSION Array ( [id] => [answer] => ) //ARRAY Array ( [id] => Array ( [0] => ) [answer] => Array ( [0] => ) )//RESULT 提交第一题,读出第二题 Array ( [id] => 1 [answer] => A ) Array ( [id] => [answer] => ) Array ( [id] => Array ( [0] => 1 [1] => ) [answer] => Array ( [0] => A [1] => ) ) 如果想要把第二题的答案和题号添加进去,我认为必须要让 $result1=array_merge_recursive($_SESSION,$result); 如果想要把第三题的答案和题号添加进去需要 $result2=array_merge_recursive($_SESSION,$result1); 现在的问题是 $result1放在哪里都不合适,还有这样做是否合理,因为如果我有N个题那就需要N-1个$result
你没做过实际调查项目(线下和线上)吧? 问卷和答卷没必要合并的,合并的唯一作用就是最后输出报告省去一次读取数据库(问卷部分)的工作而已 即使中间的统计过程一般都是忽略问卷的,如果答卷也是入库的话就更加没必要了 另外,问卷的问题量不会太大的,如果很大,去回答就不是人,而是一台机器了 一般情况下一次读出放入session就行,输出到客户端就视乎调查需要逐题或一次输出 特殊情况是后续题目不定(题库),而且跟前一个答案有关(跳转且分支庞大,逻辑关系复杂),这样才需要每题读库 基于上述两点,一般情况-->读题一次过记入session,答案逐个记入session 特殊情况,每次读题把id记入session 基本原则是题目在读取就记入session,然后才向客户端发送,而不是客户端答题后才记入session,小心处理好它们的对应关系就行了
很简单啊 1、将session中存储答案的数组取出来赋值为临时数组$answer; 2、将上个页面提交的答案取出来与$answer合并为$new_answer; 3、将$new_answer覆盖到存储答案的session数组中; 4、显示下一题
< 上一篇
写了个遍历目录、批量替换文件内容的类
下一篇 >
PHP迭代验证的问题
记住我的登录 忘记密码?
登录
我已阅读用户协议及版权声明
注册