亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

如何使用jQuery+PHP+MySQL來實現一個在線測試項目

2024-05-04 23:34:41
字體:
來源:轉載
供稿:網友

本文將結合實例給大家介紹如何使用jQuery+PHP+MySQL來實現在線測試題,包括動態讀取題目,答題完畢后臺評分,并返回答題結果。

在上一篇文章中,我們介紹了使用jQuery實現的測試題效果。那么本文將結合實例給大家介紹如何使用jQuery+PHP+MySQL來實現在線測試題,包括動態讀取題目,答題完畢后臺評分,并返回答題結果。這是一篇WEB綜合應用文章,建議閱讀本文的您應該具備HTML,jQuery以及PHP和MySQL等基本知識。

quiz.php

在這里為了講解方便,我將php和HTML混寫在quiz.php文件中。首先和本站上篇文章:jQuery實現的測試答題功能一樣,載入jQuery庫和quizs.js文件,然后在適當的位置加上測試題html結構。

 

 
  1. <div id="quiz-container"></div>  

我們要在頁面加載的時候將題目信息讀取出來,并且給jQuery調用顯示。題目信息來自數據庫,我們可以先在數據表quiz中加入題目及其答案選項信息。

我們通過構造SQL語句,使用PHP查詢數據庫,讀取題目和答案選項信息,注意這個時候我們不需要讀取正確答案。然后將題目信息以JSON格式賦給變量$json。

 

 
  1. <?php  
  2. include_once("connect.php");//連接數據庫  
  3.  
  4. $sql = "select * from quiz order by id asc";  
  5. $query = mysql_query($sql); //查詢數據  
  6. while($row=mysql_fetch_array($query)){  
  7. $answers = explode('###',$row['answer']); //將答案選項分開  
  8. $arr[] = array(  
  9. 'question' => $row['id'].'、'.$row['question'], //題目  
  10. 'answers' => $answers //答案選項  
  11. );  
  12. }  
  13. $json = json_encode($arr); //轉換json格式  
  14. ?>  

我們得到了一串json格式的數據,然后就像上一篇文章介紹的一樣,調用jquizzy(),方法如下:

 

 
  1. $(function(){  
  2. $('#quiz-container').jquizzy({  
  3. questions: <?php echo $json;?>, //試題信息  
  4. sendResultsURL: 'data.php' //結果處理地址  
  5. });  
  6. });  

這樣,我們再來運行網頁quiz.php,是不是生成了一個測試題,查看源代碼,我們只能看到json數據,卻不能看到試題對應的答案部分。

data.php

在調用測試題的時候,有個選項sendResultsURL,它是在用戶打完題,點擊“完成”按鈕時,向后臺data.php發送一個Ajax交互請求,data.php會根據用戶的答題情況,比對正確答案,然后給出用戶所得分數。

 

 
  1. include_once("connect.php"); //連接數據庫  
  2.  
  3. $data = $_REQUEST['an']; //獲取答題信息  
  4. $answers = explode('|',$data); //分析數據  
  5. $an_len = count($answers)-1; //題目數  
  6.  
  7. $sql = "select correct from quiz order by id asc";  
  8. $query = mysql_query($sql); //查詢表  
  9. $i = 0;  
  10. $score = 0; //初始得分  
  11. $q_right = 0; //答對的題數  
  12. while($row=mysql_fetch_array($query)){  
  13. if($answers[$i]==$row['correct']){ //比對正確答案  
  14. $arr['res'][] = 1; //正確  
  15. $q_right += 1; //正確答題數+1  
  16. }else{  
  17. $arr['res'][] = 0; //錯誤  
  18. }  
  19. $i++;  
  20. }  
  21. $arr['score'] = round(($q_right/$an_len)*100); //計算總得分  
  22. echo json_encode($arr);  

data.php中,首先連接數據庫,接收處理參數an,an是前端用戶答題的答案,然后查詢數據表,將用戶提交的答案與數據表中題目的正確答案進行對比,對比后做相應的處理,并計算出用戶答題所得分數,最后輸出返回json格式數據給前臺調用。

quizs.js

我們對js代碼做了修改,主要針對前后臺ajax交互部分,quizs.js中核心部分如下:

 

  1. if (config.sendResultsURL !== null) {  
  2. var collate = [];  
  3. var myanswers = '';  
  4. //獲取用戶所答題的答案  
  5. for (r = 0; r < userAnswers.length; r++) {  
  6. collate.push('{"questionNumber":"' + parseInt(r + 1, 10) + '", "userAnswer":"' + userAnswers[r] + '"}');  
  7. myanswers = myanswers + userAnswers[r]+'|';  
  8. }  
  9.  
  10. //Ajax交互  
  11. $.getJSON(config.sendResultsURL,{an:myanswers},function(json){  
  12. if(json==null){  
  13. alert('通訊失敗!');  
  14. }else{  
  15. var corects = json['res'];  
  16. $.each(corects,function(index,array){  
  17. resultSet += '<div class="result-row">' + (corects[index] === 1 ? "<div class='correct'>#"+(index + 1)+"<span></span></div>""<div class='wrong'>#"+(index + 1)+"<span></span></div>")+'</div>';  
  18. });  
  19. resultSet = '<h2 class="qTitle">' + judgeSkills(json.score) + '<br/> 您的分數: ' + json.score + '</h2><div class="jquizzy-clear"></div>' + resultSet + '<div class="jquizzy-clear"></div>';  
  20.  
  21.  
  22. superContainer.find('.result-keeper').html(resultSet).show(500);  
  23. }  
  24. });  
  25. }  

用戶答題后,將用戶所答題的答案組成字符串如“1|2|4|1|3|”的形式,然后通過$.getJSON將答案給參數an提交到后臺,后臺PHP處理比對正確答案后,將比對結果返回過來,返回結果如:{"res":[1,0,1,1,0],"score":60},res是答題比對結果,分別表示五道題的答題結果,1表示答題正常,0表示答題錯誤,score表示得分。然后將返回的結果處理,得出每道題的評判結果和總得分,生成對應的html結構。

MySQL

最后,附上mysql數據表quiz的結構:

 

 
  1. CREATE TABLE IF NOT EXISTS `quiz` (  
  2. `id` int(11) NOT NULL AUTO_INCREMENT,  
  3. `question` varchar(100) NOT NULL,  
  4. `answer` varchar(500) NOT NULL,  
  5. `correct` tinyint(2) NOT NULL,  
  6. PRIMARY KEY (`id`)  
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;  

你可以往表中添加信息,也可以直接導入源碼包中的quiz.sql文件。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人久久一区二区三区| 91高清免费视频| 国产精品欧美亚洲777777| 97精品久久久中文字幕免费| 美女视频久久黄| 欧美裸体xxxx极品少妇| 日韩国产精品一区| 亚洲国产精品大全| 日本一本a高清免费不卡| 国产精品免费福利| 精品久久久一区二区| 成人精品久久久| 亚洲性日韩精品一区二区| 国产剧情久久久久久| 精品久久久久久中文字幕大豆网| 亚洲一品av免费观看| 国产va免费精品高清在线| 亚洲午夜女主播在线直播| 亚洲精品国产电影| 中文字幕国产亚洲2019| 亚洲成年人在线播放| 91免费国产网站| 国产成人精品一区二区三区| 亚洲欧美日本精品| 国产精品美乳一区二区免费| 欧美美最猛性xxxxxx| 国产精品精品一区二区三区午夜版| 欧美日韩国产综合新一区| 性亚洲最疯狂xxxx高清| 亚洲精品少妇网址| 中文字幕欧美精品日韩中文字幕| 一区二区三区四区视频| 在线成人激情黄色| 亚洲第一福利网站| 亚洲第一色在线| 揄拍成人国产精品视频| 国语自产精品视频在线看抢先版图片| 欧美麻豆久久久久久中文| 亚洲欧美制服另类日韩| 中文字幕在线视频日韩| 欧美一区三区三区高中清蜜桃| 欧美性做爰毛片| 性欧美视频videos6一9| 久久人人爽人人爽人人片av高请| 成人国产精品日本在线| 亚洲高清不卡av| 欧美亚洲免费电影| 国产精品久久久久久av| 日韩免费观看在线观看| 亚洲欧美精品伊人久久| 国产精品wwwwww| 91免费版网站入口| 亚洲成色999久久网站| 欧美二区在线播放| 日韩经典中文字幕| 欧美黑人国产人伦爽爽爽| 亚洲国产精品悠悠久久琪琪| 国产成人黄色av| 欧美日韩黄色大片| 国产成人亚洲综合91精品| 国产91露脸中文字幕在线| 日韩精品在线电影| 国产精品视频成人| 欧美做受高潮1| 国产成人精品a视频一区www| 久久人人爽人人爽人人片av高清| 久久在线免费视频| 欧美日韩激情小视频| 亚洲精品一区二三区不卡| 亚洲区免费影片| 亚洲精品久久视频| 中文字幕在线日韩| 久久精品电影一区二区| 91产国在线观看动作片喷水| 91夜夜揉人人捏人人添红杏| 欧美激情视频一区二区三区不卡| 亚洲va男人天堂| 91精品视频在线免费观看| 亚洲va欧美va在线观看| 国产专区欧美专区| 日韩在线视频网| 亚洲黄色www| 国产v综合v亚洲欧美久久| 欧美精品在线免费播放| 亚洲一区二区中文| 久久免费精品日本久久中文字幕| 亚洲高清免费观看高清完整版| 国产精品电影在线观看| 国产精品美女在线观看| 欧美日韩高清区| 欧美xxxx做受欧美| 亚洲欧美制服丝袜| 国产精品久久久久久久久久| 庆余年2免费日韩剧观看大牛| 国产91在线播放九色快色| 欧美色视频日本版| 国产精品亚洲精品| 国产精品福利在线| 欧美成人精品h版在线观看| 久久视频在线观看免费| 狠狠色噜噜狠狠狠狠97| 综合av色偷偷网| 欧美日韩一二三四五区| 久久中文字幕在线视频| 亚洲综合在线中文字幕| 久久久国产成人精品| 亚洲视频777| 91免费高清视频| 欧美亚洲视频一区二区| 亚洲大胆人体视频| 国产精品嫩草影院久久久| 亚洲视频在线观看视频| 日韩一区二区欧美| 亚洲天堂av电影| 久久精品这里热有精品| 国产精品igao视频| 亚洲自拍欧美色图| 91成人性视频| 国产精品久久久久久五月尺| 91po在线观看91精品国产性色| 在线成人激情视频| 国产成人精品一区二区在线| 欧美大秀在线观看| 欧美亚洲另类激情另类| 69影院欧美专区视频| 日韩av第一页| 欧美日产国产成人免费图片| 国产91精品网站| 国产精品91在线观看| 欧美自拍视频在线观看| 日韩电视剧在线观看免费网站| 九九久久久久久久久激情| 亚洲视频在线观看免费| 欧美日韩免费观看中文| 欧美多人爱爱视频网站| 97热在线精品视频在线观看| 久久久久久久久久久成人| 成人av番号网| 国产精品免费看久久久香蕉| 91久久精品美女| 2020久久国产精品| 精品久久久国产| 国产精品美女网站| 97精品久久久中文字幕免费| 色妞色视频一区二区三区四区| 97在线视频免费看| 欧美日韩福利在线观看| 国产www精品| 久久综合伊人77777蜜臀| 欧美日韩国产在线看| 欧美在线性视频| 亚洲欧洲xxxx| 国产精品久久久久久亚洲影视| 日韩精品在线免费| 国产免费观看久久黄| 亚洲欧美日韩中文视频| 久久人人爽人人爽人人片亚洲| 欧美超级乱淫片喷水| 在线视频欧美日韩| 久久99久久99精品中文字幕| 久久综合色影院| 粗暴蹂躏中文一区二区三区| 在线观看亚洲视频| 日韩在线视频观看|