博主信息
博文 42
粉丝 4
评论 0
访问量 37242
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
4.16 ajax/php 表达验证--21Day
小丑的博客
原创
728人浏览过
  1. html表单页面

  2. 实例

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    	
    	<script type="text/javascript">
    
    		$(document).ready(function(){
    
    
    			// 1.验证邮箱
    			$('#email').blur(function(){
    
    					$.post('admin/check.php?check=email', 'email='+$('#email').val(), function(data){
    
    							// 清除#email同胞元素span
    							
    							$(':text#email').next('span').remove();
    							
    							//根据json键值判断
    							
    							if(data.status==0){
    								// #email后创建span元素,并在span中插入data.msg,让光标停留在前一个同胞元素#email中
    								$(':text#email').after('<span>').next().text(data.msg).prev('#email').focus();								
    							}else if(data.status==1){
    								$(':text#email').after('<span>').next().text(data.msg).prev('#email').focus();
    								
    							}else if(data.status==2){
    								$(':text#email').after('<span>').next().text(data.msg).prev('#email').focus();
    								
    							}else{
    								$(':text#email').after('<span color=green>').next().text(data.msg)
    							}
    
    							
    					},'json')
    
    			})
    			// 1.end
    
    
    
    
    			// 2.验证输入密码
    			$('#password1').blur(function(){
    				
    				if ($('#email').val().length == 0) {
    					return false
    				}
    
    				$.post('admin/check.php?check=password1','password1='+$('#password1').val(),function(data){
    						
    						$(':password#password1').next('span').remove();
    						
    						if(data.status==0){							
    							$(':password#password1').after('<span>').next().text(data.msg).prev('#password1').focus();
    						}else{
    							$(':password#password1').after('<span>').next().text(data.msg).prev('#password1');
    						}
    
    					},'json')
    
    			})
    			//2.end
    			//
    			//
    			
    
    			// 3.验证确认密码
    			$('#password2').blur(function(){
    				
    				if ($('#email').val().length == 0 || $('#password1').val().length == 0) {
    					return false
    				}
    				
    				$.post('admin/check.php?check=password2',
    						{
    							password1: $('#password1').val(),
    							password2: $('#password2').val()
    						},
    
    						function(data){
    						
    							$(':password#password2').next('span').remove();
    							
    							if(data.status==0){							
    								$(':password#password2').after('<span>').next().text(data.msg).prev('#password2').focus();
    							}else if(data.status==1){
    								$(':password#password2').after('<span>').next().text(data.msg).prev('#password2').focus();	
    							}else{
    								$(':password#password2').after('<span>').next().text(data.msg).prev('#password2');	
    							}
    
    					},'json')
    
    			})
    			//2.end
    
    
    
    
    
    
    
    		})
    
    
    
    	</script>
    
    	<style type="text/css">
    		div{
    			width: 400px;
    			background-color: #00ffff;
    			border-radius: 8%;
    			padding: 20px;
    			box-shadow: 13px 13px 13px #fcf;
    		}
    	</style>
    
    
    </head>
    <body>
    	
    	<div>
    
    		<p><label for="email">邮箱地址</label><input type="text" id="email" name="email"></p>
    		<p><label for="password1">登陆密码</label><input type="password" id="password1" name="password1"></p>
    		<p><label for="password2">密码确认</label><input type="password" id="password2" name="password2"></p>
    		<p>
    			<label for="sex">性别</label>
    			<input type="radio" id="male" name="sex" value="male">男
    			<input type="radio" id="female" name="sex" value="female">女
    			<input type="radio" id="secret" name="sex" value="secret" checked="">保密
    		</p>
    		<p> <label for="level">能力等级</label>
    			<select name="level" id="level">
    				<option value="0">小白</option>
    				<option value="1" selected="">中级</option>
    				<option value="2">大神</option>
    			</select>
    		</p>
    		<p>
    			<label for="sex">编程语言</label>
    			<input type="checkbox" id="php" name="lang[]"  value="php" checked="">PHP
    			<input type="checkbox" id="java" name="lang[]" value="java">Java
    			<input type="checkbox" id="c" name="lang[]" value="c">C#
    			<input type="checkbox" id="python" name="lang[]" value="python">python
    		</p>
    		<p>
    			<label for="content">简介</label>
    			<textarea id="content" cols="35%" rows="5"></textarea>
    		</p>
    		<p>			
    			<button>提交</button>
    		</p>
    		
    
    
    	</div>
    
    	
    </body>
    </html>

    运行实例 »

    点击 "运行实例" 按钮查看在线实例
    2.PHP服务器端

  3. 实例

    <?php 
    // echo '<pre>';
    // print_r($_POST);
     switch ($_GET['check']) {
     	//验证邮箱
     	case 'email': 		
    		$email = $_POST['email']; // 设置默认值
    		if (empty($email)) {
    			exit(json_encode(['status'=>0,'msg'=>'邮箱不能为空']));
    		} else if (in_array($email, ['admin@php.cn','zhu@php.cn'])){
    			exit(json_encode(['status'=>1,'msg'=>'邮箱已占用']));
    		} else {
    			echo json_encode(['status'=>2,'msg'=>'邮箱可用']);
    		}
     		break;
    
     	//验证密码
     	case 'password1':
     		$password1 = $_POST['password1'];
    		if (empty($password1)) {
    			exit(json_encode(['status'=>0,'msg'=>'密码不能为空']));
    		}
    		break; 	
    
    	//验证确认密码
     	case 'password2':
     		$password1 = $_POST['password1'];
     		$password2 = $_POST['password2'];
    		if (empty($password2)) {
    			exit(json_encode(['status'=>0,'msg'=>'确认不能为空']));
    		} else if ($password1 != $password2){
    			exit(json_encode(['status'=>1,'msg'=>'二次密码不相等']));
    		}  else {
    			exit(json_encode(['status'=>2,'msg'=>'验证通过']));
    		}
    		break; 	
    
    	//简介验证(仅做非空验证)
    	case 'comment':
    		$comment = $_POST['comment'];
    		if (empty($comment)) {
    			exit(json_encode(['status'=>0,'msg'=>'简介不能为空']));
    		} else if (mb_strlen(trim($comment)) < 10) {
    			exit(json_encode(['status'=>1,'msg'=>'长度小于10个字符']));
    		} else {
    			exit(json_encode(['status'=>2,'msg'=>'通过']));
    		}
    
     	//提交验证 
     	case 'submit':
     		//因为数据之前已经全部验证,这里直接返回结果即可
     		exit('恭喜,注册成功');
     }
    	
    	
    	

    运行实例 »

    点击 "运行实例" 按钮查看在线实例

3.校验效果
20180417181403.png20180417181720.png
一点记录:

1.看和实际做还是存在一点差距;

2.jquery选择器还有待加强,调试中出现的问题,绝大部分还是因为选择器的问题;

3.因为时间关系还存在若干bug,还需进一步完善;


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学