ajax+php+xml 实现在线考试问答系统

<html>
<head>
<title>Ajax应用</title>
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
<style type="text/css">
<!--CSS样式表用于定义页面的显示外观,将内容和显示分离
#answershow{ border:#E2FAFA; color:#000099; font-size:12px;}
#main{visibility:hidden;}
#begin{
    visibility:visible;
 position:absolute;
 left:135px;
 top:103px;
 width:37px;
 height:16px;
 z-index:1;
}
-->
</style>
</head>
<body>
<div id="begin"><input type="button" id="startq" value="开始"></div>
<h1>简单测试系统</h1><p><b>问题:</b> <span id="question">欢迎使用本考试系统,请单击开始!</span></p>
<div id="main">
<p><b>答案:</b><input type="text" id="answer">
<input type="button" value="Submit" id="submit">
<br><b> 提示:</b><span id="answershow"></span>
</div>
<script language="JavaScript" type="text/javascript" src="manage.js"></script>
</body>
</html>

ajax.js文件

var ajaxreq=false, ajaxCallback;
function ajaxRequest(filename) {
   try {
    ajaxreq= new XMLHttpRequest();
   } catch (error) {
    try {
      ajaxreq = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (error) {
      return false;
    }
   }
   ajaxreq.open("GET",filename);
   ajaxreq.onreadystatechange = ajaxResponse;
   ajaxreq.send(null);
}
function ajaxResponse() {
   if (ajaxreq.readyState !=4) return;
   if (ajaxreq.status==200) {
      if (ajaxCallback) ajaxCallback();
   } else alert("Request failed: " + ajaxreq.statusText);
   return true;
}
是很简单的创建xmlhttp哦,更实用健全的xmlhttp创建方法最好的xmlhttp创建方法

mange.js 文件,

var qn=0,questions,right=0;
function getQuestions() {    //getElementById用于定位到要操作的页面元素
   document.getElementById("main").style.visibility="visible";
   document.getElementById("begin").style.visibility="hidden";
   document.getElementById("answer").focus();
   obj=document.getElementById("question");
   obj.firstChild.nodeValue="正在加载.....";
   ajaxCallback = nextQuestion;
   ajaxRequest("questions.xml");     //从服务器端XML文本加载问题
}
function nextQuestion() {        //显示下一个问题
   questions = ajaxreq.responseXML.getElementsByTagName("ask");
   obj=document.getElementById("question");
   if (qn < questions.length) {
      q = questions[qn].firstChild.nodeValue;
      obj.firstChild.nodeValue=q;
   } else {           //用户回答完使用题时,给予评分
   var anobj=document.getElementById("answershow");     
   anobj.innerHTML="您的分数为:"+right/questions.length*100;
   }
}
function checkAnswer() {       //即时检查用户作答情况
   answers = ajaxreq.responseXML.getElementsByTagName("key");
   a = answers[qn].firstChild.nodeValue;
   answerfield = document.getElementById("answer");
   if(answerfield.value==""){ var anobj=document.getElementById("answershow");//用户没有作答时提示
  var anobj=document.getElementById("answershow");
     anobj.innerHTML="对不起,你还没有回答";
  answerfield.focus();
     return;}
   else if (a.toLowerCase() == (answerfield.value).toLowerCase()) {  //用户答对时的提示
    right++;
    var anobj=document.getElementById("answershow");
     anobj.innerHTML="回答正确!";
   answerfield.focus();
   }
   else {
       var anobj=document.getElementById("answershow");  //用户打错时的提示
      anobj.innerHTML="答案错误,答案应为:"+a;
      answerfield.focus();
    }
   qn = qn + 1;
   answerfield.value="";
   nextQuestion();
}
//下面几行为按钮创建事件处理
obj=document.getElementById("startq");
obj.onclick=getQuestions;
ans=document.getElementById("submit");
ans.onclick=checkAnswer;
这个文件是分析节点,判断答案是否正确的。

questions.php

<?php
 $link=mysql_connect("localhost","root","");
 mysql_select_db("quiz",$link);
 mysql_query("set names gb2312");
 $sql=mysql_query("select * from questions");
 echo "<?xml version='1.0' encoding='gb2312'?><questions>";
 
 while($info=mysql_fetch_array($sql)){
  echo "<ask>".$info[question]."</ask><key>".$info[answer]."</key>";
  };
 echo "</questions>";
?>

questions.xml

<?xml version="1.0" encoding="gb2312" ?>
<questions>
  <ask>传统的web开发模式与Ajax开发模式相比,哪个效率更高?</ask>
  <key>Ajax</key>
  <ask>Ajax技术的核心对象是什么?</ask>
  <key>XMLHttpResponse</key>
  <ask>Ajax技术中使用什么方法来定位你需要操作的元素?</ask>
  <key>getElementById</key>
  <ask>Ajax用来定义显示的是什么技术?</ask>
  <key>CSS</key>
   <ask>服务端对浏览端的响应存储在XMLHttpResponse的哪个属性中(作为xml文档)?</ask>
  <key>responseXML</key>
</questions>

就这么简单哦,下面来看看这款吧。

时间: 2024-09-20 14:27:00

ajax+php+xml 实现在线考试问答系统的相关文章

利用ASP+XML架设在线考试系统

利用ASP + XML 架设在线考试系统 <-------------此程序非本人原创-------->  使用这个在线的考试系统,我们能处理任何类型在线测试. 尽管我们一般是用传统方式实现,读者非常希望将. 如果从总体上考虑. 所有问题都储存在服务器( 它可能在数据库里) 里面的的xml 文件里. 用户准备花费考试,然后用户测试的通体将通过微软的XML HTTP 组件传送到浏览器. 使用同一个XML HTTP 组件,每当用户请求一个问题的时候,那些问题内容被从服务器解释并且显示在页上. 对用

利用ASP + XML 架设在线考试系统

利用ASP + XML 架设在线考试系统<-------------此程序非本人原创-------->    使用这个在线的考试系统,我们能处理任何类型在线测试. 尽管我们一般是用传统方式实现,读者非常希望将.如果从总体上考虑. 所有问题都储存在服务器( 它可能在数据库里) 里面的的xml 文件里. 用户准备花费考试,然后用户测试的通体将通过微软的XML HTTP 组件传送到浏览器. 使用同一个XML HTTP 组件,每当用户请求一个问题的时候,那些问题内容被从服务器解释并且显示在页上. 对用

基于Web在线考试系统的设计与实现

这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出,下载地址:http://download.csdn.net/detail/sdksdk0/9361973   数据库原理课程设计说明书              基于Web在线考试系统的设计与实现             目  录   1 课题背景与意义.3 1.1课题开发背景.3 1.2 课题开发意义.3 2 系统需求分析.4 2.1 项目要求.4 2.2 开发方案.5 2.3开发环境.5 3 总体开发.

想用mvc5做一个简单的在线考试系统,求大神指点

问题描述 想用mvc5做一个简单的在线考试系统,求大神指点!!!!留下qq或者其他,详聊 解决方案 解决方案二:http://test.icesoft.cc我刚搞完的,看合不合口味,结贴给源代码解决方案三:引用1楼Acyk的回复: http://test.icesoft.cc我刚搞完的,看合不合口味,结贴给源代码 晕!难道不能输出为一张完整的试卷吗?为什么一题一屏幕,而且还不断刷新页面呢?解决方案四:引用楼主qq_24733397的回复: 想用mvc5做一个简单的在线考试系统,求大神指点!!!!

在线考试定时自动收卷(急,急,急)

问题描述 大家好,我的毕业设计题目是:在线考试系统,我现在有一个问题研究好久也没做出来,希望大家帮帮忙!我的问题是:在考生进入考试页面时自动计时,考试时间到自动提交试卷!急求源代码!谢谢! 解决方案 解决方案二:使用ajax,到时输入js,如document.getelementbyid('button1').click();解决方案三:肯定要用到Ajax或javascirpt来计时.时间到时,中断当前页面.解决方案四:楼上两位的方法可以呢其他应该还有方法!

用ASP开发一个在线考试程序(七)

程序|在线 Result.asp 这一页的主要目的是显示结果,同时将这些结果插入数据库以备将来参考.for each item in Request.Formsql_check = "select Count(*) from "&subject&" where answer ='" & Request.Form(item) & "'"Set RS_check = Application("Conn&quo

用ASP开发一个在线考试系统

在线 本文所介绍的应用程序是以ASP编程的初学者为读者的.虽然这个例子非常简单,但是它对于那些试图在线对他们的雇员.学生或客户进行考试的组织是非常有用的. 关于这个应用程序 我们的应用程序中的第一个界面包含在index.asp 中,由一个注册页组成,其中有两个输入域,一个是用户名,另一个是口令.非会员要想参加考试的话必须要注册.这一页是初始屏幕,为用户提供用户名和口令的输入框. 开发一个在线考试系统-asp在线考试系统"> 需要注意的是,这两个将要批准的会员域应该有客户机端的JavaScr

jsp在线考试系统-jsp文件

js|在线 一个在线考试系统,测试你的jsp知识,代码不是特别多,所以不加注释了(http://jspbbs.yeah.net) answer.jsp <%-- Include directive --%> <%@ include file="header.html" %> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"> <TR&g

jsp在线考试系统-htm文件

js|在线 一个在线考试系统,测试你的jsp知识,代码不是特别多,所以不加注释了(http://jspbbs.yeah.net) index.jsp <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"> <TR> <TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sa