当我们平时在注册的时候,有时候输入某个用户名后,页面会提示该用户名已经被注册了,那这种技术是怎么实现的?
其实通常是通过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;
?>