學習網(wǎng)站作業(yè) 測試功能 思路與實現(xiàn)

最近在做一個關于學習的網(wǎng)站富雅,有一個作業(yè) 測試的功能焕襟, 想記錄一下:
用的 thinkphp3.2
這是界面


QQ截圖20170929114111.png

控制器:

//測試
public function ztest(){
        //課時id
        $id = I("hour_id");
        $field = "test";
        $uid = $_SESSION['user_id'];
        $page = 0;
        $section = M('course_section')->field($field.',sc_name')->where("id = '$id'")->find();
        $arr = explode(',', $section[$field]);
        $count = count($arr);
        foreach($arr as $k => $v){
            $ti = M('exam_shiti')->where("id = '$v'")->find();
            $old = M('course_test')->where("uid = '$uid' and tid = '$v' and type = '2'")->find();
            if($old){
                $ti['old'] = 1;
                $ti['old_val'] = $old['val'];
                if($ti['typeid'] < 4){
                    if($ti['daan'] == $old['val']){
                        $yesstr .= "1".',';
                        $ti['jie'] = '<span style="color:green;">正確</span>陨收。'.htmlspecialchars_decode($ti['analysis']);
                    }else{
                        $yesstr .= "0".',';
                        $ti['jie'] = '<span style="color:red;">錯誤</span>。正確答案:'.$ti['daan'].htmlspecialchars_decode($ti['analysis']);
                    }
                }else{
                    $yesstr .= "1".',';
                    $ti['jie'] = '<span style="color:green;">正確</span>鸵赖。'.htmlspecialchars_decode($ti['analysis']);
                }
            }else{
                $ti['old'] = 2;
            }
            if($k == $count-1){
                $ti['ready'] = 1;
            }
            $tiarr[] = $ti;
        }
        if(substr($yesstr, -1) == ','){
            $yesstr = substr($yesstr, 0,-1);
        }
        if(isset($_POST['page'])){  // 類似于上一頁下一頁   ajax下一題上一題處理地點
            if($_POST['page'] > count($tiarr)){
                echo 'no';die;
            }
            $page = $_POST['page']-1;
        }
        if(isset($_POST['val'])){  //  判斷正確與否  ajax提交處理地點
            $val = $_POST['val'];
            $tid = $_POST['id'];
            $dati = M('exam_shiti')->field('daan,analysis')->where("id = '$tid'")->find();
            if($_POST['xing'] < 4){
                if($dati['daan'] == $val){
                    $res['da'] = '正確';
                }else{
                    $res['da'] = '錯誤';
                }
            }else{
                $res['da'] = '正確';
            }
            $res['txt'] = '正確答案:'.$dati['daan'].htmlspecialchars_decode($dati['analysis']);
            echo json_encode($res);die;
        }
        
        //查詢是否已收藏
        $ttid = $tiarr[$page]['id'];
        $uid = $_SESSION['user_id'];
        $coll = M('exam_collect')->where("exam_id = '$ttid' and uid = '$uid' and type = '1'")->find();
        
        $this->assign('yesstr',$yesstr);
        $this->assign('coll',$coll);
        $this->assign('hour_id',$id);
        $this->assign('section',$section);
        $this->assign('page',$page+1);
        $this->assign('ti',$tiarr[$page]);   //以數(shù)組下標做分頁顯示
        $this->assign('webname','我的課程');
        $this->display();
    }

    //儲存答案
    public function subti(){
        $val = I('val');
        $id = I('id');
        $sid = I('sid');
        $type = I('type');
        $uid = $_SESSION['user_id'];
        $data['val'] = $val;
        $data['tid'] = $id;
        $data['uid'] = $uid;
        $data['sid'] = $sid;
        $data['type'] = $type;
        
        $add = M('course_test')->add($data);
    }
    //刪除答案
    public function delti(){
        $id = I('id');
        $uid = $_SESSION['user_id'];
        $del = M('course_test')->where("uid = '$uid' and sid = '$id' and type = '2'")->delete();
    }

首先是提交功能务漩,分辨題型符匾,去數(shù)據(jù)庫比對對錯咐蚯,返回答案,顯示:
注远剩,客戶要求列赎,問答題和材料題直接返回正確

//作業(yè)提交答案
//xing 題型  1選擇  2填空  3判斷  4 問答  5材料題
// e 點擊對象宏悦,id 題ID,path  ajax地址(判斷正確與否)包吝,cunpath ajax地址(保存答案)饼煞,sid 課時ID
//Fraction  有是測試   測試需要返回分數(shù),且可以重復做題   诗越、無是作業(yè)砖瞧,  只能做一次,不需要打分
function subti(e,id,xing,path,cunpath,sid,Fraction){
    var val,type;
    if(xing == 1){//選擇題
        val = $("input[name='daan']:checked").val();
    }else if(xing == 2){//填空題
        val = $("input[name='daan']").val();
    }else if(xing == 3){//判斷題
        val = $("input[name='daan']:checked").val();
    }else if(xing == 4 || xing == 5){
        val = $("textarea[name='daan']").val();
    }
    if(Fraction){
        type = 2;
    }else{
        type = 1;
    }
    $.post(cunpath,{id:id,val:val,type:type,sid:sid},function(data){  //保存答案到數(shù)據(jù)庫
        console.log(data);
    })
    $.post(path,{val:val,id:id,xing:xing},function(data){  //判斷返回內(nèi)容
        var res = JSON.parse(data);
        if(res.da == '正確'){
            if(Fraction){
                var f = $("#Fraction").val();
                if(f != ''){  //頁面儲存正確與否嚷狞,打分用
                    $("#Fraction").val(f+','+'1');
                }else{
                    $("#Fraction").val('1');
                }
            }
            var html = "<span style='color:green;'>"+res.da+"</span>";
        }else{
            if(Fraction){
                var f = $("#Fraction").val();
                if(f != ''){  //頁面儲存正確與否块促,打分用
                    $("#Fraction").val(f+','+'0');
                }else{
                    $("#Fraction").val('0');
                }
            }
            var html = "<span style='color:red;'>"+res.da+"</span>";
        }
        html += "荣堰。"+res.txt;
        $("#daancontent").html(html);
        $("#daancontent").show();
        $(e).hide();
        $(e).next().show()
    })
}

點擊提交后,顯示對錯竭翠,并且顯示正確答案與解析振坚。 提交按鈕變成下一題


image.png

點擊下一題

//作業(yè)測試上一題下一題
// e 本對象  , type  作業(yè)or測試  斋扰,id  課時ID  渡八,path ajax發(fā)送地址(上下題)
//endpath  ajax發(fā)送地址(測試的話測試完成需要刪除答案記錄)
// Fraction  有就是測試   無就是作業(yè)
function nextti(e,type,page,id,path,endpath,Fraction){
    if(type == 'next'){//下一題
        page += 1;
    }else if(type == 'prev'){
        page = page-1;
    }
    $.post(path,{page:page,hour_id:id},function(data){
        if(data == 'no'){  //返回no  沒有下一題了
            if(Fraction){
                var f = $("#Fraction").val();
                var arr = f.split(",");
                var j = 0;
                for(var i=0;i<arr.length;i++){
                    if(arr[i] == 1){
                        j++;
                    }
                }
//              console.log(j);
                var zf =  Math.ceil((100/arr.length)*j);
                layer.open({
                    title:'提示',
                    shadeClose: false, //點擊遮罩關閉
                    content: "最終得分"+ zf,
                    end: function(index, layero){
                        $.post(endpath,{id:id},function(){
                            href('/index.php?g=portal&m=MyCourse&a=mycourse');
                        })
                    }
                });
            }else{
                layer.open({
                    title:'提示',
                    shadeClose: false, //點擊遮罩關閉
                    content: "作業(yè)做完啦",
                    end: function(index, layero){
                        href('/index.php?g=portal&m=MyCourse&a=mycourse');
                    }
                });
                
            }
        }else{
            var i = $("#aaaa",data);
            $("#aaa").html(i);
        }
    })
//  console.log(val);/
}

點擊下一題

image.png
image.png
image.png
image.png

大概就是個這, 能參考的參考一下吧~~
可能有點亂传货,不太容易看屎鳍,。问裕。逮壁。
反正我也就是記錄一下, 萬一以后用的著呢粮宛。~~~

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窥淆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子窟勃,更是在濱河造成了極大的恐慌祖乳,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秉氧,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜒秤,警方通過查閱死者的電腦和手機汁咏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作媚,“玉大人攘滩,你說我怎么就攤上這事≈脚荩” “怎么了漂问?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長女揭。 經(jīng)常有香客問我蚤假,道長,這世上最難降的妖魔是什么吧兔? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任磷仰,我火速辦了婚禮,結果婚禮上境蔼,老公的妹妹穿的比我還像新娘灶平。我一直安慰自己伺通,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布逢享。 她就那樣靜靜地躺著罐监,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞒爬。 梳的紋絲不亂的頭發(fā)上弓柱,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音疮鲫,去河邊找鬼吆你。 笑死,一個胖子當著我的面吹牛俊犯,可吹牛的內(nèi)容都是我干的妇多。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼燕侠,長吁一口氣:“原來是場噩夢啊……” “哼者祖!你這毒婦竟也來了?” 一聲冷哼從身側響起绢彤,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤七问,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茫舶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體械巡,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年饶氏,在試婚紗的時候發(fā)現(xiàn)自己被綠了讥耗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡疹启,死狀恐怖古程,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喊崖,我是刑警寧澤挣磨,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站荤懂,受9級特大地震影響茁裙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜势誊,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一呜达、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粟耻,春花似錦查近、人聲如沸眉踱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谈喳。三九已至,卻和暖如春戈泼,著一層夾襖步出監(jiān)牢的瞬間婿禽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工大猛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扭倾,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓挽绩,卻偏偏與公主長得像膛壹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子唉堪,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容