<%@page contentType="text/html;charset=gb2312" errorPage=""%>
<html>
<head>
<script language="javascript">
var XMLHttpRe;
function createXMLHttpRequest()
{
  XMLHttpRe = false;
  //开始初始化XMLHttpRequest对象
  if(window.XMLHttpRequest) 
  { //Mozilla 浏览器
  XMLHttpRe = new XMLHttpRequest();
  if (XMLHttpRe.overrideMimeType) 
{//设置MiME类别
  XMLHttpRe.overrideMimeType('text/xml');
  }
  }else if (window.ActiveXObject) 
  { // IE浏览器
  try {
      XMLHttpRe = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
                      try {
                              XMLHttpRe = new ActiveXObject("Microsoft.XMLHTTP");
                          } catch (e) {}
                  }
  }
  if (!XMLHttpRe) 
  { // 异常,创建对象实例失败
  window.alert("不能创建XMLHttpRequest对象实例.");
  return false;
  }
}
function sendRequest(i) 
{//发送请求函数
var stri=i+"";
var sno=document.form4.stri.value;
createXMLHttpRequest();
var url = "getInfo.jsp?sno="+sno;
XMLHttpRe.open("GET",url, true);
XMLHttpRe.onreadystatechange = processResponse(i);//指定响应函数
XMLHttpRe.send(null);  // 发送请求
}
function processResponse(i) 
{// 处理返回信息函数
 if (XMLHttpRe.readyState == 4) 
 { // 判断对象状态
  if (XMLHttpRe.status == 200) {
  Display(i);
  //setTimeout(sendRequest,1000,i);
  }
  else{window.alert("输入有误!");}
 }
}
function Display(i) 
{
var name = XMLHttpRe.responseXML.getElementsByTagName
("name")[0].firstChild.data;
var major = XMLHttpRe.responseXML.getElementsByTagName
("major")[0].firstChild.data;
document.getElementById("sname"+i).innerHTML =name; 
document.getElementById("smajor"+i).innerHTML = major; 
}
</script><title>成绩录入</title></head>
<body bgcolor="#FFFF99">
<%
String strCourse=(String)session.getAttribute("cid");
String strCname=(String)session.getAttribute("cname");
%>
<center><font size="+3" color="#990000"><%=strCourse%>&nbsp;&nbsp;<%=strCname%></font></center>
<form name="form4" method="post" action="inputaction.jsp">
<table align="center" bgcolor="#CC99FF"border="1">
<tr align="center">
<td width="105">学号</td>
    <td width="100">姓名</td>
    <td width="150">专业</td>
<td width="66">分数</td>
</tr>
<%
int i=0;
int s=Integer.parseInt((String)session.getAttribute("intS"));
if(s>100)
{s=100;}//超过100则只能录入100个
while(i<s)
{%>
<tr align="right">
<td width="105"><input type="text" name="<%=i%>"size="15" align="right" 
onBlur="sendRequest(<%=i%>)"/></td>
<td width="100" align="right" id="sname<%=i%>" ></td>
<td width="150" align="right" id="smajor<%=i%>"></td>
<td width="66"><input type="text" name="<%=(i+100)%>" size="10" align="right" value="0.0"/></td>
</tr>
<%i++;
}
%>
</table><center>
  <p>&nbsp;<font color="#FF0000">最多一次输入100个</font>  </p>
  <p>
    <input type="submit" value="提交" name="submit"/> 
    &nbsp;
    &nbsp; 
    &nbsp; 
    &nbsp; 
    <input type="reset" value="重置" name="reset"/>
  </p>
</center></form>
</body>
</html>大侠们帮忙看看

解决方案 »

  1.   

    document.getElementById("sname"+i).innerText=name; 
    document.getElementById("smajor"+i).innerText= major;
      

  2.   

    document.getElementById("sname"+i).innerText=name;  
    document.getElementById("smajor"+i).innerText= major;
    给td表格列元素中间插入值。不能用innerHTML.用innerHTML相当于把td都改了。innerHTML是修改或取到元素的html代码。你把它的html代码赋给一个这样的普通变量肯定是行不通的。
      

  3.   

    按照各位说的改过了,还是不行啊   url指向的getInfo.jsp始终都没有解释成相应的servlet
      

  4.   

    getInfo.jsp在哪呢?找不到呢?
    看你代码真累,没有代码格式。
    下面是我写的ajax的工具类,我都是使用工具类,建个ajaxUtil.js把下面的代码复制到里面,
    引入这个文件<script type='text/javascript' src='路径/ajaxUtil.js'></script> ajax工具类代码var Ajax = {
    createXHR:function(){
    if(window.XMLHttpRequest){
    var xhr = new XMLHttpRequest();
    return xhr;
    }else if(window.ActiveXObject){
    var xhr = new ActiveXObject("Microsoft.XMLHTTP");
    return xhr;
    }
    },
    sendRequest:function(method,url,data,callback){// callback代表函数名
    var xhr = this.createXHR();
    xhr.open(method,url,true);
    if("GET"==method.toUpperCase()){
    xhr.send(null);
    }else if("POST"==method.toUpperCase()){
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr.send(data);
    }
    xhr.onreadystatechange=function(){
    if(xhr.readyState==4 && xhr.status==200){
    //callback(xhr);可以这样
    callback({text:xhr.responseText,xml:xhr.responseXML});// 也可以这样。这样最好,面向对象
    }
    }
    }
    };在jsp中这么使用Ajax.sendRequest("post","url","username=张三&password=123456",callback);
    function callback(cb){// 这个是返回函数,返回时处理业务逻辑,就在这个函数中
    var value1 = cb.text;
    var value2 = cb.xml;
    //上面是两种返回方式
    }