ajax重复验证.doc

上传人:s9****2 文档编号:563436970 上传时间:2024-02-11 格式:DOC 页数:4 大小:181.51KB
返回 下载 相关 举报
ajax重复验证.doc_第1页
第1页 / 共4页
ajax重复验证.doc_第2页
第2页 / 共4页
ajax重复验证.doc_第3页
第3页 / 共4页
ajax重复验证.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《ajax重复验证.doc》由会员分享,可在线阅读,更多相关《ajax重复验证.doc(4页珍藏版)》请在金锄头文库上搜索。

1、利用Ajax技术来检测用户名是否存在”的例子利用Ajax技术来检测用户名是否存在的原理流程图: 最终结果截图:复制代码 代码如下: Ajax检测用户名 用户名: 代码解释: 实现该功能的核心代码在ajax.js,需要另外引进 给form命名,因为后面我们需要利用JS来取得input框中的value 给input框添加一个“onblur”事件,即当“焦点”失去时触发该事件(即流程图的“触发控件”) 用来放从服务器发送回来的数据(即“用户名已存在”等) 复制代码 代码如下:?php mysql_connect(localhost,root,); mysql_select_db(test); $sq

2、l=select * from ajax where name=$_GETid; $query=mysql_query($sql); if(is_array(mysql_fetch_array($query) echo 用户名已存在; else echo 用户名可以使用; ? 代码解释: 通过ajax的open方法,将用户输入”用户名“通过id传递给进来(即$_GETid),此时将对指定的数据库表中进行查询,检查是否有存在该“用户名” ajax.js 复制代码 代码如下:/ JavaScript Document var XHR; /定义一个全局对象 function createXHR()

3、/首先我们得创建一个XMLHttpRequest对象 if(window.ActiveXObject)/IE的低版本系类 XHR=new ActiveXObject(Microsoft.XMLHTTP);/之前IE垄断了整个浏览器市场,没遵循W3C标准,所以就有了这句代码。但IE6之后开始有所改观 else if(window.XMLHttpRequest)/非IE系列的浏览器,但包括IE7 IE8 XHR=new XMLHttpRequest(); function checkname() var username=document.myform.user.value; createXHR(

4、); XHR.open(GET,checkname.php?id=+username,true);/true:表示异步传输,而不等send()方法返回结果,这正是ajax的核心思想 XHR.onreadystatechange=byhongfei;/当状态改变时,调用byhongfei这个方法,方法的内容我们另外定义 XHR.send(null); function byhongfei() if(XHR.readyState = 4)/关于Ajax引擎对象中的方法和属性,可以参考我的另一篇博文:http:/ if(XHR.status = 200) var textHTML=XHR.respo

5、nseText; document.getElementById(checkbox).innerHTML=textHTML; 代码解释: 首先我们需要声明一个ajax引擎的对象:XHR(随便命名一个) 因为微软的低版本IE和其他的浏览器创建ajax对象的方式不一样,现在IE和其他浏览器的市场份额几乎各占一半,所以我们得两方面都考虑到,IE-ActiveXObject;其他-XMLHttpRequest。我将她封装在一个函数中:createXHR 我们在index.html中指定的当失去“焦点”时就会触发checkname()函数。那么我们如何将用户输入的“用户名”捕获呢?这里,利用js即可轻松

6、捕获到document.myform.user.value(现在知道为何给form和input命名了吧,这一步对应流程图的“获得填写内容”),有兴趣的博友,可以试试在createXHR()的前一行敲行代码(alert(username)),将捕获到的用户名弹出试试看。 Ajax引擎有几个方法和属性(可以参考我的另一篇博文:看图理解:普通交互方式和Ajax交互方式区别),使用之前我们得先调用函数craateXHR创建一个ajax对象 有了ajax对象,有三个方法是必不可少的:open()、onreadystatechange、send()。 将请求发送到服务器,要使用open ()和send()

7、方法 open()方法的第一个参数,指示采用GET或者POST方式进行传输。 open()方法的第二个参数,指示要请求的URL地址(这里我们请求的是checkname.php文件),可以是绝对或相对地址 open()方法的第三个参数async指示是否采用异步请求,true为采用,这种情况下,通过ajax、js无需等待服务器响应,而是:在等待服务器响应的同时执行其他脚本当响应就绪后对响应进行处理。一般对一些小型的请求,async=false也是可以的,但此时就不要编写onreadystatechange 函数了 onreadystatechange事件:当ajax的属性readyState改变时

8、,就触发此事件。在此事件中,当服务器响应已做好被处理的准备时(即readyState=4且status=200时),我们规定要让服务器做什么任务,这里我们规定将从数据库检索到的结果输出到id为”checkbox“的span标签中。 通过checkname.php,查询数据库后,将得到查询结果(即服务器的响应,对应流程图中的”查询数据库“),此时数据还在ajax引擎中,如需获得该来自服务器的响应,我们需要使用XMLHttpRequest对象的responText或responseXML属性,并通过DOM属性innerHTML将从服务器响应回来的数据设置为id=”checkbox“的span标签的值 注:利用ajax监测邮箱是否存在一个道理,我们还可以利用ajax实时监测用户输入的密码强度,此时,需要用到可以把onblur事件改为onfocus事件。详细出处参考:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号