Ajax+asp如何无刷新提交的同时如何无刷新查询

程序如下:
index.asp://表单页面
<input name="text" type="text" class="input" id="text" onchange="UpDate('saveSL','<%=rs("SPDM")%>','<%=rs("YSDM")%>','38',this.value)" value="<%=rs("SL38")%>" size="3" maxlength="3" />
var request = false; //新建request对象

try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
function UpDate(action,spdm,ysdm,cmdm,value) //更改的数据实时写入数据库
{
url="save.asp?Action="+action+"&SPDM="+spdm+"&YSDM="+ysdm+"&CMDM="+cmdm+"&val="+value;
request.open("get",url,true);
request.onreadystatechange=updatePage;
request.send();
}
function updatePage() { //实时更新表单数据
if (request.readyState == 4) {
if (request.status == 200) {
var response = request.responseText.split("|");;
var x=currentLine-1
document.getElementById("sumSL"+x).innerHTML =response[1];
} else
alert("status is " + request.status);
}
}
save //保存页面
<!--#include file="conn.asp"-->
<!--#include file="admin.asp"-->
<!--#include file="Inc/Config.asp"-->
<%
SPDM=trim(request("SPDM"))
YSDM=trim(request("YSDM"))
CMDM=trim(request("CMDM"))
val=trim(request("val"))
Action=trim(request("Action"))
KHDM=session("AdminName")
set rs=server.createobject("adodb.recordset")
sql="select * from DDMX where SPDM='"&SPDM&"'and YSDM='"&YSDM&"'and CMDM='"&CMDM&"'"
select case Action
case "saveSL"
rs.open sql,conn,1,3
if val="" then
rs.delete
else
if (rs.bof and rs.EOF) then
rs.addnew
call SaveData()
rs.update
else
call SaveData()
rs.update
end if
end if
rs.close
set rs=nothing
end select
Response.charset = "gb2312"
set rs1=server.createobject("adodb.recordset")
sql1="select sumSL,sumJE from SPMX_3 where UserName='"&KHDM&"'and SPDM='"&SPDM&"'and YSDM='"&YSDM&"'"
rs1.open sql1,conn,1,1
rs1.close
set rs1=nothing
%>
<%
sub SaveData()
rs("SPDM")=SPDM
rs("YSDM")=YSDM
rs("CMDM")=CMDM
rs("SL")=val
rs("KHDM")=KHDM
end sub
%>
表单中的数据改变时可以正确提交数据,但是response[1];返回的是空,response[1];返回的是undefined,,,求救!!!!
我在save.asp中加response.write(rs1("sumSL"))可以读取出来了,sunSL--是数据库中的求和项
但是读取出来的数据部不太准确,我在表单中输入1后,有时候读取出来的是1,有时候是正确的4(一行共有四个input),求救怎么解决????

request.open("get",url,true); 以get方式获取URL信息
当你提交表单的时候,表单是否是get方式提交
如果是post方式提交的时候,
request.onreadystatechange=updatePage;
执行执行函数
response = request.responseText.split("|");;
到这一句的时候,request.responseText 没有获取到以get方式提交的信息
自然request[0]返回为空,因为数据并没有以get的方式传到服务器上

要么改变表单提交的方式来试试看,要么获取方式进行下判断来筛选获取方式
温馨提示:答案为网友推荐,仅供参考
相似回答