⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 Ajax最流行书籍
💻 PHP
字号:
<?phprequire_once('Exam.class.php');define('XOAD_AUTOHANDLE', true);require_once('../../xoad.php');$exam = new Exam();$exam->loadQuestions();$exam->cleanAnswers();?><?= '<?' ?>xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">	<head>		<title>XOAD Exam System</title>		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />		<?= XOAD_Utilities::header('../..') ?>		<style type="text/css" media="screen">			body			{				background-color: #fff;				color: #000;				font: normal 0.8em tahoma, verdana, arial, serif;				margin: 0;				padding: 1em;			}			a			{				color: #04c;				text-decoration: underline;			}			a:hover			{				color: #08f;				text-decoration: underline;			}			a.active,			a.active:hover			{				color: #c00;				cursor: default;				text-decoration: none;			}			a.answered,			a.answered:hover			{				color: #4a4;			}			#loading			{				background-color: #c00;				border: 0.1em solid #800;				color: #fff;				display: none;				margin: 0;				right: 1em;				padding: 0.25em 0.5em 0.25em 0.5em;				position: absolute;				top: 1em;				width: 6em;			}			#answers ol			{				margin: 0;				padding: 0 0 1em 2em;			}			#answers ol li			{				margin: 0;				padding: 0 0 0.25em 0;			}			#answers ol .correct			{				color: #4a4;				font-weight: bold;			}			#answers ol .incorrect			{				color: #c00;				font-weight: bold;				text-decoration: line-through;			}			h1			{				border-bottom: 0.1em solid #ccc;				font-size: 1.2em;				padding: 0;				margin: 0 0 1em 0;			}			h2			{				font-size: 0.9em;				margin: 0 0 0.5em 0;				padding: 0;			}			.answer			{				font-weight: bold;			}		</style>	</head>	<body>		<h1 id="question">Welcome</h1>		<div id="answers"></div>		<div id="pager"></div>		<div id="loading">Loading...</div>		<script type="text/javascript">		var exam = <?= XOAD_Client::register($exam) ?>;		var pageState = 0;		var timeout = 10000;		var answeredQuestion = 0;		var currentQuestion = null;		function showLoading()		{			document.body.style.cursor = 'wait';			document.getElementById('loading').style.display = 'block';		};		function hideLoading()		{			document.body.style.cursor = 'default';			document.getElementById('loading').style.display = 'none';		};		function openQuestion(id)		{			if (			(pageState > 0) ||			(currentQuestion == id) ||			(typeof(exam.questions[id]) == 'undefined')) {				return false;			}			pageState ++;			showLoading();			exam.onGetAnswersError = function(error) {				hideLoading();				pageState --;				alert('The was an error fetching the question from the server:\n\n' + error.message);				return true;			};			exam.setTimeout(timeout);			exam.getAnswers(id, function(result) {				if (				(result == null) ||				(result == false)) {					return false;				}				if (currentQuestion != null) {					var currentPagerLink = document.getElementById('question-' + currentQuestion);					currentPagerLink.className = currentPagerLink.className.replace(' active', '');				}				var pagerLink = document.getElementById('question-' + id);				pagerLink.className += ' active';				var question = document.getElementById('question');				question.innerHTML = (id + 1) + '. ' + exam.questions[id];				var answers = document.getElementById('answers');				for (var iterator = answers.childNodes.length - 1; iterator >= 0; iterator --) {					answers.removeChild(answers.childNodes[iterator]);				}				var list = document.createElement('ol');				for (var iterator = 0; iterator < result.data.length; iterator ++) {					var item = document.createElement('li');					if (result.answer >= 0) {						var text = document.createElement('span');						text.innerHTML = result.data[iterator];						if (iterator == result.answer) {							text.className = 'answer';						}						item.appendChild(text);					} else {						var link = document.createElement('a');						link.innerHTML = result.data[iterator];						link.setAttribute('href', '#');						link.setAttribute('id', 'answer-' + iterator);						link.setAttribute('rel', iterator);						link.onclick = function() {							this.blur();							submitAnswer(parseInt(this.getAttribute('rel')));							return false;						};						item.appendChild(link);					}					list.appendChild(item);				}				answers.appendChild(list);				currentQuestion = id;				hideLoading();				pageState --;			});			return true;		};		function submitAnswer(id)		{			if (			(pageState > 0) ||			(currentQuestion == null) ||			(typeof(exam.questions[currentQuestion]) == 'undefined')) {				return false;			}			pageState ++;			showLoading();			exam.onSubmitAnswerError = function(error) {				hideLoading();				pageState --;				alert('The was an error submitting the answer to the server:\n\n' + error.message);				return true;			};			exam.setTimeout(timeout);			exam.submitAnswer(currentQuestion, id, function(result) {				if (				(result == null) ||				(result == false)) {					return false;				}				var pagerLink = document.getElementById('question-' + currentQuestion);				pagerLink.className += ' answered';				hideLoading();				pageState --;				answeredQuestion ++;				if (answeredQuestion < exam.questions.length) {					if (currentQuestion < exam.questions.length - 1) {						openQuestion(currentQuestion + 1);					} else {						openQuestion(0);					}				} else {					showResult();				}			});			return true;		};		function showResult()		{			if (pageState < 1) {				pageState ++;			}			var question = document.getElementById('question');			var answers = document.getElementById('answers');			var pager = document.getElementById('pager');			question.innerHTML = 'Results';			for (var iterator = answers.childNodes.length - 1; iterator >= 0; iterator --) {				answers.removeChild(answers.childNodes[iterator]);			}			for (var iterator = pager.childNodes.length - 1; iterator >= 0; iterator --) {				pager.removeChild(pager.childNodes[iterator]);			}			showLoading();			exam.onFetchResultsError = function(error) {				hideLoading();				if (confirm('The was an error fetching the results from the server:\n\n' + error.message + '\n\nTry again?')) {					showResult();				}				return true;			};			exam.setTimeout(timeout);			exam.fetchResults(function(result) {				if (				(result == null) ||				(result == false)) {					return false;				}				var correctAnswers = 0;				for (var iterator = 0; iterator < result.data.length; iterator ++) {					var title  = document.createElement('h2');					title.innerHTML = (iterator + 1) + '. ' + result.data[iterator][0];					answers.appendChild(title);					var list = document.createElement('ol');					var correctAnswer = result.data[iterator][[result.data[iterator].length - 1]];					var givenAnswer = result.answers[iterator];					var isCorrect = (correctAnswer == givenAnswer);					correctAnswers += (isCorrect ? 1 : 0);					for (var answersIterator = 1; answersIterator < result.data[iterator].length - 1; answersIterator ++) {						var item = document.createElement('li');						item.innerHTML = result.data[iterator][answersIterator];						if (answersIterator - 1 == givenAnswer) {							if ( ! isCorrect) {								item.className = 'incorrect';							} else {								item.className = 'correct';							}						} else {							if ( ! isCorrect) {								if (answersIterator - 1 == correctAnswer) {									item.className = 'correct';								}							}						}						list.appendChild(item);					}					answers.appendChild(list);				}				question.innerHTML += ' (' + correctAnswers + ' / ' + result.data.length + ')';				hideLoading();			});		};		function buildPager()		{			var pager = document.getElementById('pager');			for (var iterator = 0; iterator < exam.questions.length; iterator ++) {				var link = document.createElement('a');				link.innerHTML = iterator + 1;				link.setAttribute('id', 'question-' + iterator);				link.setAttribute('href', '#');				link.onclick = function() {					this.blur();					openQuestion(parseInt(this.innerHTML) - 1);					return false;				};				pager.appendChild(link);				if (iterator < exam.questions.length - 1) {					pager.appendChild(document.createTextNode(' '));				}			}		};		buildPager();		openQuestion(0);		</script>	</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -