ajax用户名存在检测
一、ajax请求的四个步骤:
1、创建ajax对象
var xmlhttp=new XMLHttpRequest();//IE5,IE6以外的浏览器
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");//IE5,IE6
2、连接服务器
open() 方法有三个参数,第一个参数是连接方法即 GET 和 POST,第二个参数是 URL 即所要读取数据的地址,第三个参数是否异步(默认为异步),它是个布尔值,true 为异步,false 为同步。
xmlhttp.open('GET',url,true);
3、发送ajax请求
当请求为GET方式时,可以在不指定参数或使用null参数的情况下调用send()方法。
xmlhttp.send();
4、接收返回值
当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。当请求完成加载(readyState值为4)并且响应已经成功(http状态值为200)时,就可以调用一个javascript函数来处理该响应内容。
xmlhttp.onreadystatechange=RequestCallBack;//设置回调函数
function RequestCallBack(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
//处理程序
}
}
| 属性 | 说明 |
| onreadystatechange | 每次状态改变都会触发这个事件处理器,通常会调用一个javascript函数 |
| readyState |
请求的状态,有以下5个取值 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端调用了 |
| responseText | 服务器的响应,表示为字符串 |
| reponseXML | 服务器的响应,表示为XML。这个对象可以解析为一个DOM对象 |
| status |
返回服务器的http状态码,如: 200=>成功 202=>请求被接受,但尚未成功 400=>错误的请求 404=>文件未找到 500=>内部服务器错误 |
| statusText | 返回http状态码对应的文本 |
二、异步检测用户名的例子
html请求页面test.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax用户名存在检测</title>
<style>
.bad{
color:red;
}
.good{
color:green;
}
</style>
</head>
<body>
<form>
<label for="username" >用户名:</label><input type="text" onblur="checkname()" id="username"/><span id="tip">请输入用户名</span>
</form>
<script type="text/javascript">
var checkname=function(){
var username=document.getElementById('username').value.trim();
var tip=document.getElementById('tip');
if(username!=""){
var xmlhttp=null;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","check.php?username="+username,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
if(xmlhttp.responseText==1){
tip.className="good";
tip.innerHTML="用户名可用!";
}
else if(xmlhttp.responseText==0){
tip.className="bad";
tip.innerHTML="用户名已被占用!";
}
}
}
}else{
tip.className="";
tip.innerHTML="请输入用户名";
}
}
</script>
</body>
</html>
php检测页面check.php:
<?php
$username=$_GET['username'];
$conn=mysql_connect('localhost','root','123') or die("连接数据库服务器失败!".mysql_error());
mysql_select_db("test",$conn);
$result=mysql_query("select username from tb_user where username='$username'",$conn);
if(mysql_num_rows($result)>0){
echo 0;
}else{
echo 1;
} ?>
三、效果图
图一

图二

图三

ajax用户名存在检测的更多相关文章
- 用ajax实现用户名的检测(JavaScript方法)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- JQuery的Ajax实现注册检测用户名
Ajax(无需等待直接向服务器发起请求) (Asynchronous Javascript And Xml) :异步的 Google创新的一种js技术 实现方法一:比较原始没有封装的方法: //核对用 ...
- thinkphp中ajax用户名校验
ajax实在是太神奇了,刚刚接触,不足之处,请大家指正. 采用Ajax方式进行页面无刷新提示,来检测用户名是否存在. 搭建一个thinkphp的环境,在index.html中,ajax代码如下: &l ...
- ajax用户名案例(重点)
要求:失去焦点时如下效果 主页代码 <body> 用户名:<input type="text" id="a" /><div i ...
- updatepanel局部刷新功能,实现注册时对用户名的检测
updatepanel的使用 通过将控件放入到updatepanel中,实现局部刷新. 前台代码:<asp:ScriptManager ID="ScriptManager1" ...
- ajax用户名校验demo详解
//用户名校验的方法 //这个方法使用XMLHTTPRequest对象进行AJAX的异步数据交互 var xmlhttp; function verify(){ //1.使用dom的方式获取文本框中的 ...
- 关于ajax用户名验证和jquery实现简单表单验证
首先来说用户名验证: 前台: <tr> <td class="tableleft">教师编号</td> <td><input ...
- 2016/4/5 Ajax ①用户名 密码 登陆 注册 ② 判断用户名是否已存在 ③点击按钮出现民族选项下拉菜单 ④DBDA类 加入Ajaxquery方法 数组变字符串 字符串拆分
①登陆 注册 查表匹配 0405Ajax.php ②判断用户名是否存在 <!DOCTYPE html> <html lang="en"> ...
- Struts2+Ajax实现检测用户名是否唯一
搞了慢慢两天,终于弄明白了怎么在Struts2框架中使用Ajax检测用户名的存在了.虽然,比起那些大牛们来,这速度确实够慢的,不过,最终弄出来还是满满的成就感啊. 闲话休提,言归正传.直接上代码: A ...
随机推荐
- PHPer常见的面试题总结
1.平时喜欢哪些php书籍及博客?CSDN.虎嗅.猎云 2.js闭包是什么? 3.for与foreach哪个更快? 4.php鸟哥是谁?能不能讲一下php执行原理? 5.php加速器有哪些?apc.z ...
- Jmeter(三十七)源码导入IDE(转!)
转自:http://www.cnblogs.com/taoSir/p/5144274.html[eclipse] https://blog.csdn.net/collonn/article/de ...
- [UE4]InterpToMovement
InterpToMovement:可以让Actor在规定时间内,在多个点之间循环移动. Duration:规定时间
- linux下新建(touch)\复制(cp)\剪切(mv)\删除(rm)文件
touch :新建多个文件,中间用空格隔开 touch file1 file2 cp: mv:剪切 rm:删除文件
- Windows使用Idea编译spark源码
1. 环境准备 JDK1.8 Scala2.11.8 Maven 3.3+ IDEA with scala plugin 2. 下载spark源码 下载地址 https://archive.apach ...
- Tomcat启动报错:Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies
错误代码如下: Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for ...
- ORM、SQLAchemy
ORM.SQLAchemy orm英文全称object relational mapping,就是对象映射关系程序,简单来说就是类似python这种面向对象的程序来说一切皆对象,但是使用的数据库却都是 ...
- Date对象设置一天的0点
在某些场景下,页面中的查询点关注的是某一天的数据,但是后台查询的时候,需要的是某一天从0点到当天的23:59:59,我们通过日历插件选择的日期,带回到后台的可能是日起对象,也可能是日期字符串,也可能是 ...
- 逻辑卷(lv)管理(LVM)
可以灵活改变分区大小.这里的分区叫做lv,lv创建在 vg中,vg由pv组成.pv可以由磁盘创建也可以由物理分区创建.灵活改变分区大小,就是调整lv的大小.lv可以调整的范围受到vg大小的限制,而 v ...
- 通俗理解caller和callee
caller 返回一个调用当前函数的引用: callee 返回一个正在被执行函数的引用: 举个例子: 当前有函数 a() 直接使用了caller 方法: b() 直接使用了callee方法: ca() ...