搜索
系统检测到您的用户名不符合规范:

tp5实现在线答题/问卷调查的模块

浏览:5362 发布日期:2017年05月17日 分类:功能实现 关键字: 在线答题
想到偶尔有同学需要做问卷调查或者在线考试的情况,所以做的该模块,下面将逻辑图和部分代码奉上。要体验的话登录http://www.5atl.com 体验

微信扫描,回复答题即可体验,同时也有电脑版,登录http://www.5atl.com


逻辑图 /*
* post检查答案正确与否,先检查是否登录,答案正确写入记录表中 本方法是大规模阉割了数据结构的,业务逻辑如此,看到看不懂的地方肯定是我删掉了,你自己填写你的逻辑和数据源即可
*/
public function check()
{

// 1. 传入答题和答案的序列
$result = json_decode(input('data'), true);

// 2. 从数据库中加载正确的答题列表和答案
$exam = ????

if (time() > $exam['endtime']) {
return json([
'code' => - 1,
'msg' => '本次答题活动已结束'
]);
}

$items = ????此处查询考题出来
if ($items == null) {
return json([
'code' => - 1,
'msg' => '考题都还没出呢'
]);
}

// 3. 对比两个序列,把不匹配的项目列出来
$list = [];
foreach ($items as $item) {
foreach ($result as $child) {
if ($item['id'] == $child['itemid']) {
if ($item['rightanswer'] == $child['selected']) {
$item['selected'] = $child['selected'];
$list[] = $item;
}
}
}
}

// 4. 计算分值 正确数量占比
$score = count($list) * 100 / count($items);

// 5. 分值和错误答案的正确选择,并返回奖励序列号,写入result

$msg = '';
if ($exam['examor'] == 0 && $exam['mark'] <= $score) {
$msg = '真厉害,共您答对' . count($list) . '道题,得分' . $score . '分!';
if ($exam['havegit'] === 1) {
//此处发送短信
}
}
if ($exam['examor'] == 0 && $exam['mark'] > $score) {

$msg = '真抱歉,共您答对' . count($list) . '道题,得分' . $score . '分!';
}

if ($exam['examor'] == 1) {
$msg = '感謝您参与本次调查活动';
if ($exam['havegit'] === 1) {
//此处发短信
}
}
}
评论() 相关
收藏
daneas
积分:1285 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /