Blogger Information
Blog 38
fans 0
comment 2
visits 24187
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
用php和ajax来处理表单—4月16日
→忆指凡尘&的博客
Original
424 people have browsed it

大家好

       以下是我对用php和ajax来处理表单的练习,如有错误望大家指出,谢谢

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>1实例:用php来处理表单(1)</title>
	<style type="text/css">
		table {				
			background-color: wheat;
			box-shadow: 3px 3px 3px #888;
			border-radius: 3%;
			padding: 15px;
			margin: 30px auto;
		}
		table td {
			padding: 8px;
		}
		table caption {
			font-size: 1.5em;
			margin-bottom: 10px;
		}
		textarea {
			resize: none;
		}
		form table button {
			width: 100px;
			height: 30px;
			cursor: pointer;
			border: none;
			background-color: skyblue;
			color: white;
		}
		form table button:hover {
			background-color: orangered;
			color: white;
			font-size:1.1em;
		}
	</style>
</head>
<body>	
	<form action="admin/check.php" method="post">
		<table>
			<caption>用户注册</caption>
			<tr>
				<td><label for="email">邮箱:</label></td>
				<td><input type="text" name="email" id="email" autofocus=""></td>
			</tr>
			<tr>
				<td><label for="password1">密码:</label></td>
				<td><input type="password" name="password1" id="password1"></td>
			</tr>
			<tr>
				<td><label for="password2">确认:</label></td>
				<td><input type="password" name="password2" id="password2"></td>
			</tr>
			<tr>
				<td><label for="secret">性别:</label></td>
				<td> <!-- 单选与众不同,点击标签会自动选择默认值 -->
					<input type="radio" name="gender" id="male" value="male" ><label for="male">男</label>
					<input type="radio" name="gender" id="female" value="female"><label for="female">女</label>
					<input type="radio" name="gender" id="secret" value="secret" checked="" ><label for="secret">保密</label>
				</td>
			</tr>
			<tr>
				<td><label for="level">级别</label></td>
				<td>
					<select name="level" id="level">
						<option value="0">小白</option>
						<option value="1" selected="">中级</option>
						<option value="2">大神</option>
				</select>
				</td>
			</tr>
			<tr>
				<td><label for="php">语言:</label></td>
				<td>  <!-- 点击标签会把php做为默认项之一选中 -->
					<input type="checkbox" name="lang[]" id="php" value="php"  checked><label for="php">php</label>
					<input type="checkbox" name="lang[]" id="java" value="java"><label for="java">java</label>
					<input type="checkbox" name="lang[]" id="python" value="php"><label for="python">python</label>
					<input type="checkbox" name="lang[]" id="c" value="c"><label for="c">c</label>
				</td>
			</tr>
			<tr>
				<td valign="middle"><label for="comment">简介:</label></td>
				<td><textarea name="comment" id="comment" rows="3" cols="30"></textarea></td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<button type="submit" name="submit" id="submit" value="submit">提交</button>
				</td>
			</tr>
		</table>
	</form>	
	<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
	<script type="text/javascript">
		//请求邮箱验证
		//添加失去焦点验证
		$('#email').blur(function(){
            //post请求
			$.post('check.php?check=email', 'email='+$('#email').val(), function(data){
				switch(data.status) {
					case 0:
					//移除span标签
					$('td').find('span').remove()
					//该输入框的后面添加一个span标签,并设置文本内容为该状态下的返回数据
					$('#email').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
					break;
					case 1:
					$('td').find('span').remove()
					//该输入框的后面添加一个span标签,并设置文本内容为该状态下的返回数据
					$('#email').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
					break;
					case 2:
					$('td').find('span').remove()
					//该输入框的后面添加一个span标签,并设置文本内容为该状态下的返回数据
					$('#email').after('<span>').next().text(data.msg).css('color', 'green')
					break;
				}
				
			},'json')
		})


		//密码验证
		$('#password1').blur(function(){
			//条件判断语句
			if ($('#email').val().length == 0) {
				return false
			}
			$.post('check.php?check=password1','password1='+$('#password1').val(),function(data){
				if(data.status == 0) {
					$('td').find('span').remove()
					//该输入框的后面添加一个span标签,并设置文本内容为该状态下的返回数据
					$('#password1').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
				}
			},'json')
		})

		//确认密码验证
		$('#password2').blur(function(){
			if ($('#email').val().length == 0) {
				return false
			}
			if ($('#password1').val().length == 0) {
				return false
			}
			$.post('check.php?check=password2', {
				password1: $('#password1').val(),
				password2: $('#password2').val()
			}, function(data){
				switch(data.status) {
					case 0:
					$('td').find('span').remove()
					$('#password2').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
					break;
					case 1:
					$('td').find('span').remove()
					$('#password2').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
					break;
					case 2:
					$('td').find('span').remove()
					$('#password2').after('<span>').next().text(data.msg).css('color', 'green')
					break;
				}
				
			},'json')
		})
		$('#comment').blur(function(){
			if ($('#email').val().length == 0) {
				return false
			}
			if ($('#password1').val().length == 0) {
				return false
			}
			if ($('#password2').val().length == 0) {
				return false
			}
			$.post('check.php?check=comment', 'comment='+$('#comment').val(), 
				function(data){
					switch(data.status) {
					case 0:
					$('td').find('span').remove()
					$('#comment').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
					break;
					case 1:
					$('td').find('span').remove()
					$('#comment').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
					break;
                    }   
			    },'json'
			)
		})
	</script>
</body>
</html>

运行实例 »

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

实例

<?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 (strlen($comment)<=30){
			exit(json_encode(['status'=>1,'msg'=>'文本框不能少于10个字']));
		} 
 		break;	
 	
 }
运行实例 »

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

                                                                                课程总结

1.blur事件的用法 — 失去焦点的验证

2.熟悉ajax中post请求  $.post 

3.熟悉链式调用的方法

4.switch 语句的用法—   switch() {

                                                 case :

                                                 break;  //这里必须要有break来返回,否则继续往下执行


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post