最近在编写asp的网站,可不可以页面里的数据全部用ajax加载实现,如可

最近在编写asp的网站,可不可以页面里的数据全部用ajax加载实现,如可,第1张

当然可以的. 用ajax方法向服务器发出请求后, 然后从服务器返回一组数据(json格式, 也可以是你的自定义格式), 再将这些数据解析后, 放在页面上相应的位置. 这样, 就能实现不刷新页面去更新页面上的数据.

这东西实现起来其实也不难,但是人家写出来的代码不能直接引用,说好像也不怎么好说,我尽量写得让人容易懂的,希望你看得懂吧,我尽力了!这是我曾经写过的一个,我将

一些东西改了一下,你只需要按照注释改改你需要改的东西就行了。

1 首先你要新建一个名称为ajax_user.asp的ASP文件,将里面的HTML全部清空(记住是全部)!就是一个空白文件,保存到你注册页面文件同级目录下,然后加上这些代码:

(这个文件按照你实际情况改好了后,最好在浏览器打出这个文件的路径并在路径后面加上?user=aaaa测试一下,如果没提示错误,就可以了,)

===============ajax_user.asp的内容==================(不要复制我)

<%response.Charset="gb2312"%>

<%

'定义变量user用来储存ajax发送请求链接中带的user值

set conn = server.createobject("ADODB.connection")

conn.open "driver={microsoft Access driver (*.mdb)}dbq="&server.mappath("数据库路径") '此处需要作实际改动

dim user

user = request.querystring("user")

if user<>"" then

set rs_user = server.createobject("ADODB.recordset")

rs_user.open "select * from 会员表 where 账号字段='"&user&"'",conn,1,1 '此处需要作实际改动!

if rs_user.eof then

'用户名可用的提示信息,可以依实际情况改动!

response.write "<font color='green'>恭喜,此用户名可用!</font>"

else

'用户名不可用的提示信息,可以依实际情况改动!

response.write "<font color='red'>此用户名已被注册!</font>"

end if

end if

%>

===============ajax_user.asp的内容==================(不要复制我)

2 然后在你的注册页面的<head></head>之间加上如下代码:

<script type="text/javascript" language="javascript">

http_request = null

function createAjax(){

if(window.XMLHttpRequest){

//Mozilla,Safari

http_request = new XMLHttpRequest()

if(http_request.overrideMimeType){

http_request.overrideMimeType('text/xml')

}

}else if(window.ActiveXObject){

//IE

try{

http_request = new ActiveXObject("Mszml2.XMLHTTP")

}catch (e){

try{

http_request = new ActiveXObject("Microsoft.XMLHTTP")

}catch (e){

alert("exception")

}

}

}

}

//==============需要改动的都在右边作了注释的!================

function user_add(){

var user = document.getElementById("账号输入文本框的id").value//此处需要作实际改动!

var url = "ajax_user.asp?user="+user//ajax_user.asp的路径不要动

var myDate = new Date()

var hours = myDate.getHours()

var minutes = myDate.getMinutes()

var seconds = myDate.getSeconds()

var times = hours+"H"+minutes+"M"+seconds+"S"

//post auto saved data

if(user!="" &&user.length>=3 &&user.length<=6){ //此处需要作实际改动,3和6分别为用户名要求的最少字符数和最多字符数

createAjax()

http_request.onreadystatechange=user_Ajax

http_request.open("POST",url+"&times="+times,true)

http_request.send(null)

}

}

function user_Ajax(){

var warningDiv = document.getElementById("显示提示信息的容器的id")//此处需要作实际改动!

if(http_request.readyState == 4){

if(http_request.status == 200 || http_request.status == 0){

var requestContent = http_request.responseText

warningDiv.innerHTML = requestContent

}else if(http_request.status == 404 || http_request.status == 2){

alert("404 (Not Found),未找到请求文件!")

}else{

alert("请求数据过程中出现错误!"+http_request.status)

}

}else{

warningDiv.innerHTML = "检测中..."

}

}

</script>

3 接着在你的账号文本框里加入如下属性:

假如这个是账号文本框

<input type="text" name="user" id="user" onblur="user_add()"/>

那么,当输入完毕点账号文本框失去焦点就会检测

这个应该是你ajax的s变量问题,首先你要知道reg_cncn.asp返回的是什么格式的东西,假如返回一个json格式的数组,假如数组如下:{'status':'success', 'msg':'我是消息', 'data':'我是内容,可能还是二维数组'}

这是s的调用就可以简单这么写:

1. s.status == 'success'

2. warning(obj, s.msg)

3.alert(s.data)

但如果reg_cncn.asp返回的是其他格式的,就需要转化了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11899399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存