jquery ajax 返回值的问题,急求解决!

为防老年痴呆而编程 2011-04-18 10:13:34
index.asp代码:
<html>
<head>
<title>ajax保存数据</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<script language="javascript" src="js/jquery-1.4.min.js"></script>
<script type="text/javascript" >
$(document).ready(function(){
var nf=$("#NFID").val();
var yf=$("#YFID").val();
var zy=$("#ZYID").val();
var dataString='nf='+nf+'&yf='+yf+'&zy='+zy;
$("#editButton").click(function(){
$.ajax({
type:"post",
url:"addsave.asp",
data:dataString,
datetype:'text',
error: function(){
alert("系统出错!");
},
complete:function(){
alert("系统调用完成!");
},
success:function(msg){ //数据提交成功时返回数据
alert(unescape(msg));
}
});
return false;
});
$("#getButton").click(function(){
alert($("#NFID").val());
});
});
</script>
</head>
<body>

<label for="NFID">年份</label>
<select name="NFID" id="NFID">
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011" selected>2011</option>
<option value="2012">2012</option>
</select>
<label for="YFID">月份</label>
<select name="YFID" id="YFID">
<option value="01" selected>01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<label for="ZYID">专业</label>
<select name="ZYID" id="ZYID">
<option value="01" selected>农</option>
<option value="02">工</option>
<option value="03">商</option>
</select>
<input type="button" name="editButton" id="editButton" value="编辑">
<input type="button" name="getButton" id="getButton" value="年份">
</body>
</html>

能返回值的addsave.asp代码如下:
<%
nf=request("nf")
yf=request("yf")
zy=request("zy")
outstr="你选择的是 年份"+nf+" 月份"+yf+" 专业"+zy
response.write(vbsescape(outstr))
response.End()

'与javascript中的escape()等效
Function VbsEscape(str)
dim i,s,c,a
s=""
For i=1 to Len(str)
c=Mid(str,i,1)
a=ASCW(c)
If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
s = s & c
ElseIf InStr("@*_+-./",c)>0 Then
s = s & c
ElseIf a>0 and a<16 Then
s = s & "%0" & Hex(a)
ElseIf a>=16 and a<256 Then
s = s & "%" & Hex(a)
Else
s = s & "%u" & Hex(a)
End If
Next
VbsEscape=s
End Function

'与javascript中的unescape()等效
Function VbsUnEscape(str)
Dim x
x=InStr(str,"%")
Do While x>0
VbsUnEscape=VbsUnEscape&Mid(str,1,x-1)
If LCase(Mid(str,x+1,1))="u" Then
VbsUnEscape=VbsUnEscape&ChrW(CLng("&H"&Mid(str,x+2,4)))
str=Mid(str,x+6)
Else
VbsUnEscape=VbsUnEscape&Chr(CLng("&H"&Mid(str,x+1,2)))
str=Mid(str,x+3)
End If
x=InStr(str,"%")
Loop
VbsUnEscape=VbsUnEscape&str
End Function
%>

如下的addsave.asp的代码无法返回值:
<%

nf=request("nf")
yf=request("yf")
zy=request("zy")
outstr="你选择的是 年份"+nf+" 月份"+yf+" 专业"+zy



DB="ddd.mdb"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if fso.FolderExists(server.MapPath("include"))=false then
DB="../"&DB
end if
set fso=nothing
path=Server.MapPath(DB)
set conn=server.createobject("adodb.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source="&path
conn.Open connstr
Set rs=server.CreateObject("adodb.recordset")
sql="select zbID,zbdm,zbmc,zydm,zymc from zbk01 where zydm="&zy& " order by zbID"
rs.open sql,1,1
'if rs.eof Then
'else
' response.write(vbsescape(outstr))
'end if
rs.close
set rs=nothing
conn.close
set conn=nothing
response.write(vbsescape(outstr))
response.End()

'与javascript中的escape()等效
Function VbsEscape(str)
dim i,s,c,a
s=""
For i=1 to Len(str)
c=Mid(str,i,1)
a=ASCW(c)
If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
s = s & c
ElseIf InStr("@*_+-./",c)>0 Then
s = s & c
ElseIf a>0 and a<16 Then
s = s & "%0" & Hex(a)
ElseIf a>=16 and a<256 Then
s = s & "%" & Hex(a)
Else
s = s & "%u" & Hex(a)
End If
Next
VbsEscape=s
End Function

'与javascript中的unescape()等效
Function VbsUnEscape(str)
Dim x
x=InStr(str,"%")
Do While x>0
VbsUnEscape=VbsUnEscape&Mid(str,1,x-1)
If LCase(Mid(str,x+1,1))="u" Then
VbsUnEscape=VbsUnEscape&ChrW(CLng("&H"&Mid(str,x+2,4)))
str=Mid(str,x+6)
Else
VbsUnEscape=VbsUnEscape&Chr(CLng("&H"&Mid(str,x+1,2)))
str=Mid(str,x+3)
End If
x=InStr(str,"%")
Loop
VbsUnEscape=VbsUnEscape&str
End Function
%>

也就是说运行数据库一系操作就无法返回值了,请问是为什么?
...全文
762 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢,我试一下
toury 2011-04-19
  • 打赏
  • 举报
回复
搞的太复杂了,有那个必要吗?
1、为什么还要判断数据库的位置?
if fso.FolderExists(server.MapPath("include"))=false then
DB="../"&DB
end if
程序是你写的,难道你自己还不知道数据库放什么地方了吗?如果是为了安全经常换位置,那一点意义都没有

2、你的addsave.asp里都有什么功能?只看到你打开了一张表,什么都没干。

3、你搞那么多的后台加密解密做什么?如果是防乱码,你把前后台都设置成统一的GBK或UTF-8就可以了;而且VBS自带了URLEncode等加密函数。

修改程序流程可以缩减到你现在代码量的1/3到1/4
showenxxx 2011-04-19
  • 打赏
  • 举报
回复
报什么错呢

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧