ajax+php实现注册页面中自动检测用户名是否已经注册的功能

当我们平时在注册的时候,有时候输入某个用户名后,页面会提示该用户名已经被注册了,那这种技术是怎么实现的?
其实通常是通过ajax实现的。
下面来说说php+ajax怎么实现这个功能,以下简易demo为例:
写个简单的页面:


代码如下


<body>
		
		<p>请输入用户名
		<br>
		<input type='text' id='test' οnkeyup="f(this.value)">
		<br>
		<div id='box'></div>
</body>

其中οnkeyup="f(this.value)" 
是键盘事件,每次键盘输入都会调用这个事件。
f函数代码如下:

<script type="text/javascript">
		function f(str){
			$.post('ajax.php',{'str':str},function(data){
				if(data=='found'){
				$("#box").html('用户名已经存在');
				}else{
				$("#box").html('');
				}
			});
			
		}
</script>
采用了jquery里面的方法,所以要引入jquery文件。 
$.post() 三个参数分别为 php文件的url ,传递的参数 ,以及回调函数。
从这里可以看到,如果返回的字符串等于found,那就提示用户名存在,否则置空。
下面看看php代码。

$array=[
        'kiruma',
        'hhh',
        'ken',
        'linux',
        'lalala'
    ];

首先我定义了个数组,模拟已经存在的用户名
$str=$_POST['str'];
获取有ajax传递的数据。

$response='notFound';
   foreach ($array as $s){
        if($str==$s){
           $response='found';
        }
    }
    
    echo $response;

首先设置
$response='notFound';   再遍历数组,如果找到相同的就把$response置为found
最后再 echo $response 即可

下面给出全部代码:

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
	<title>--ajax demo--</title>
	<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
		
		<p>请输入用户名
		<br>
		<input type='text' id='test' οnkeyup="f(this.value)">
		<br>
		<div id='box'></div>
</body>



	<script type="text/javascript">
		function f(str){
			$.post('ajax.php',{'str':str},function(data){
				if(data=='found'){
				$("#box").html('用户名已经存在');
				}else{
				$("#box").html('');
				}
			});
			
		}
	</script>
</html>

<?php 
    $array=[
        'kiruma',
        'hhh',
        'ken',
        'linux',
        'lalala'
    ];

   $str=$_POST['str'];
   $response='notFound';
   foreach ($array as $s){
        if($str==$s){
           $response='found';
        }
    }
    
    echo $response;

?>





























  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值