使用Ajax校验用户名是否存在

使用Ajax校验用户名

通常情况下在一个系统中的用户的登录名是唯一的,为了保证用户名的唯一性,需要在用户注册时添加校验,即根据用户输入的用户名去数据库中查找,这里使用ajax校验用户名可以很好的提升用户体验,用户输入完用户名失去鼠标焦点后通过ajax去数据库中查找是否唯一,然后根据结果给用户相应的提示信息,这样对于用户来说非常方便。

什么是回调函数
回调函数就是你编写好了一个函数,让软件系统来调用这个函数,该函数就是回调函数。说的简单点其实就是让系统调用你的函数就是回调,那你调用系统的函数是直调。
举例来说,你跟马云谈生意,聊天结束后,你跟马云说以后有什么需要帮助的可以联系我的秘书小张。这个秘书小张就可以看做是回调函数,当马云联系你的秘书小张时,叫做调用回调函数。


通常我们在网页上注册登录时,刚填好用户名跳到下一行时突然提示你的用户名已被注册,也不需要刷新网页,这个功能的实现就是靠Ajax技术实现的,具体实现如下。

JS部分(MyAjax.js)

//获取XMLHttpRequest对象
function getXMLHttpRequest(){
	var xmlHttp;
	//IE7+,FireFox,Chrome,Opera,Safari
	if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
	}else{//ie6,ie5
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	return xmlHttp;
}

JSP部分

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>验证用户</title>
</head>
<body>
<form action="">
     用户名:<input type="text" name="username" id="username"/><span id="msg"></span><br/>
   </form>
</body>
<script type="text/javascript" src="${pageContext.request.contextPath}/MyAjax.js"></script>
<script type="text/javascript">
    window.onload=function(){
        var nameElement = document.getElementById("username");
        //绑定onblur事件(即鼠标焦点离开输入框所触发的事件)
        nameElement.onblur = function(){
            //this等价于nameElement
            var name = this.value;
            //创建XMLHttpRequest对象
            var xhr;
            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xhr = new XMLHttpRequest();
            } else {// code for IE6, IE5
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            //注册回调函数
            xhr.onreadystatechange = function(){
                if(xhr.readyState==4){//请求一切正常
                    if(xhr.status==200){//服务器响应一切正常
                        var msg = document.getElementById("msg");
                        if(xhr.responseText=="true"){
                            msg.innerHTML =  "<font color='red'>用户名已存在</font>";
                           
                        }else{
                            msg.innerHTML = "可以使用";
                        }
                    }
            }
        }

        //创建连接
        xhr.open("get","${pageContext.request.contextPath }/regist?name="+name);
        //发送请求
        xhr.send(null);
        }

    }
</script>
</html>

Servlet部分

package com.rong.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RegistServlet
 */
@WebServlet("/regist")
public class RegistServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		 PrintWriter out = response.getWriter();
	        String name = request.getParameter("name");
	        if("123".equals(name)){
	            out.print(true);    
	        }else{
	            out.print(false);
	        }	
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

效果图如下:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于AJAX技术的用户注册校验代码示例。假设你使用的是PHP后端语言。 在注册页面,添加一个用户名输入框和一个校验按钮: ```html <label>用户名:</label> <input type="text" id="username" name="username"> <button onclick="checkUsername()">校验</button> ``` 在JavaScript,编写校验函数checkUsername(),使用AJAX技术向后端发送请求,并根据返回结果提示用户: ```javascript function checkUsername() { var username = document.getElementById("username").value; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var result = xhr.responseText; if (result == "exist") { alert("该用户名已存在,请尝试其他用户名"); } else { alert("该用户名可以使用"); } } }; xhr.open("POST", "check_username.php", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send("username=" + username); } ``` 在后端PHP文件check_username.php,查询数据库是否存在用户名,并返回对应的结果: ```php <?php $username = $_POST["username"]; // 连接数据库,查询是否存在用户名 $conn = new mysqli("localhost", "username", "password", "database"); $sql = "SELECT * FROM users WHERE username='$username'"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 用户名已存在 echo "exist"; } else { // 用户名可用 echo "not exist"; } $conn->close(); ?> ``` 以上代码仅供参考,具体实现方式需要根据你的具体需求进行调整。同时,为保证系统安全性,需要对用户输入进行严格的校验和过滤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值