批改状态:合格
老师批语:
主题:
利用jquery的$.post()提交表单数据请求,由服务器上的check.php处理表单数据验证。
实现效果:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户注册验证</title>
<style type="text/css">
table {
width:400px;
background-color: #CCFF99;
box-shadow: 2px 4px 2px #555;
border:1px solid #777;
border-radius:3%;
margin:30px auto;
padding:15px;
}
table caption {
font-size: 1.5em;
}
table td {
padding:5px;
}
textarea {
resize: none;
}
table button {
width: 100px;
height: 30px;
cursor: pointer;
border: none;
background-color: #6666FF;
color: white;
font-size: 1.1em;
}
table button:hover {
background-color: #CC66CC;
color: white;
}
span {
font-size:0.7em;
}
</style>
</head>
<body>
<form action="admin/check.php" method="post">
<table>
<caption>用户注册</caption>
<tr>
<td><label for="user">用户名称:</label></td>
<td><input type="text" id="user" name="user"></td>
</tr>
<tr>
<td><label for="pwd">用户密码:</label></td>
<td><input type="password" id="pwd" name="pwd"></td>
</tr>
<tr>
<td><label for="cfpwd">确认密码:</label></td>
<td><input type="password" id="cfpwd" name="cfpwd"></td>
</tr>
<tr>
<td><label>用户性别:</label></td>
<td>
<input type="radio" id="male" name="sex" value="male"><label for="male">男</label>
<input type="radio" id="female" name="sex" value="female" checked><label for="female">女</label>
<input type="radio" id="secret" name="sex" value="secret"><label for="secret">保密</label>
</td>
</tr>
<tr>
<td><label for="">用户类别:</label></td>
<td>
<select name="" id="">
<option value="">普通用户</option>
<option value="" selected>二级用户</option>
<option value="">操作员</option>
<option value="">管理员</option>
</select>
</td>
</tr>
<tr>
<td><label>技术类型:</label></td>
<td>
<input type="checkbox" id="front" name="skill[]" value="front"><label for="front">前端</label>
<input type="checkbox" id="server" name="skill[]" value="server" checked><label for="serverfront">后端</label>
<input type="checkbox" id="design" name="skill[]" value="design"><label for="design">设计</label>
</td>
</tr>
<tr>
<td valign="middle"><label for="msg">用户介绍:</label></td>
<td><textarea name="msg" id="msg" cols="30" rows="3"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><button type="submit" id="submit" name="submit" value="submit">提交</button></td>
</tr>
</table>
</form>
</body>
<!-- jquery 核心 JavaScript 文件 -->
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
//请求邮箱验证
$('#user').blur(function(){
// post方式发送请求
$.post('admin/check.php?check=user', 'user='+$('#user').val(), function(data){
// switch()循环输出验证结果
switch(data.status) {
// 当status为0时,取出返回的相应data数据
case 0:
// 先移除之前生成的警告信息
$('td').find('span').remove()
// 添加新的警告信息
$('#user').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
break;
case 1:
$('td').find('span').remove()
$('#user').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
break;
case 2:
$('td').find('span').remove()
$('#user').after('<span>').next().text(data.msg).css('color', 'green')
break;
}
},'json')
})
//密码验证
$('#pwd').blur(function(){
// 判断用户名称是否为空
if ($('#user').val().length == 0) {
return false
}
$.post('admin/check.php?check=pwd','pwd='+$('#pwd').val(),function(data){
if(data.status == 0) {
$('#pwd').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
}
},'json')
})
//确认密码验证
$('#cfpwd').blur(function(){
if ($('#user').val().length == 0) {
return false
}
// 将密码和确认密码一同发送到check.php验证
$.post('admin/check.php?check=cfpwd', {
pwd: $('#pwd').val(),
cfpwd: $('#cfpwd').val()
}, function(data){
switch(data.status) {
case 0:
$('td').find('span').remove()
$('#cfpwd').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
break;
case 1:
$('td').find('span').remove()
$('#cfpwd').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
break;
case 2:
$('td').find('span').remove()
$('#cfpwd').after('<span>').next().text(data.msg).css('color', 'green')
break;
}
},'json')
})
// 用户介绍验证
$('#msg').blur(function(){
$.post('admin/check.php?check=msg', 'msg='+$('#msg').val(), function(data){
if ($('#user').val().length == 0) {
return false
}
switch(data.status) {
// 验证非空
case 0:
$('td').find('span').remove()
$('#msg').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
break;
// 验证大于30个字节(10个汉字)
case 1:
$('td').find('span').remove()
$('#msg').after('<span>').next().text(data.msg).css('color', 'red').prev().focus();
break;
// 验证通过
case 2:
$('td').find('span').remove()
$('#msg').after('<span>').next().text(data.msg).css('color', 'green')
break;
}
},'json')
})
</script>
</html>点击 "运行实例" 按钮查看在线实例
<?php
// 获取前端的post请求数据
switch ($_GET['check']) {
//验证邮箱
case 'user':
$user = $_POST['user']; // 设置默认值
// 非空必须要用empty()验证,json_encode()返回json数据格式
if (empty($user)) {
// status为状态表示参数,不同的数值代表不同状态,并执行不同语句
exit(json_encode(['status'=>0,'msg'=>'用户名不能为空']));
} else if (in_array($user, ['admin@php.cn','zhu@php.cn'])){
// 验证不通过时用exit()退出循环语句,不往下执行
exit(json_encode(['status'=>1,'msg'=>'用户名已占用']));
} else {
// 验证通过时执行输出语句
echo json_encode(['status'=>2,'msg'=>'用户名可用']);
}
break;
//验证密码
case 'pwd':
$pwd = $_POST['pwd'];
if (empty($pwd)) {
exit(json_encode(['status'=>0,'msg'=>'密码不能为空']));
}
break;
//验证确认密码
case 'cfpwd':
$pwd = $_POST['pwd'];
$cfpwd = $_POST['cfpwd'];
if (empty($cfpwd)) {
exit(json_encode(['status'=>0,'msg'=>'确认不能为空']));
} else if ($pwd != $cfpwd){
exit(json_encode(['status'=>1,'msg'=>'二次密码不相等']));
} else {
exit(json_encode(['status'=>2,'msg'=>'验证通过']));
}
break;
// 验证用户介绍
case 'msg':
$msg = $_POST['msg']; // 设置默认值
if (empty($msg)) {
exit(json_encode(['status'=>0,'msg'=>'介绍不能为空']));
}
//使用strlen()获取字符串长度
else if (strlen($msg) < 30){
exit(json_encode(['status'=>1,'msg'=>'介绍不能少于10个汉字']));
} else {
echo json_encode(['status'=>2,'msg'=>'介绍信息可用']);
}
break;
} 点击 "运行实例" 按钮查看在线实例
重点:
前端:$.post()方式发送请求,移除之前生成的警告信息,将密码和确认密码一同发送到check.php验证
后端:$_GET['check']获取前端请求数据,非空必须要用empty()验证,使用strlen()获取字符串长度
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号