博主信息
博文 27
粉丝 0
评论 0
访问量 22278
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于Ajax-9.13
Yyk.的博客
原创
731人浏览过

用户登录验证

实例

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
<form>
	<h1>登录</h1>
	<p>姓名:<input type="name" name="name"></p>
	<p>密码:<input type="password" name="password"></p>
	<p><button type="button">提交</button></p>
</form>
	<script>
	let btn = document.getElementsByTagName('button')[0];
	btn.onclick = function(){
		
		//1.创建xhr对象
		let xhr = new XMLHttpRequest();
		
		//2.监听响应状态
		xhr.onreadystatechange = function(){
			
			//检测是否准备就绪
			if(xhr.readyState === 4){
				
				//判断响应结果
				if(xhr.status === 200){
					//响应成功
					let p = document.createElement('p');
					p.style.color = 'red';
					//将从服务端返回的数据变为js对象
					let json = JSON.parse(xhr.responseText);
				
                    if (json.status === 1) {
                        p.innerHTML = json.msg;

                    } else if (json.status == 0) {
                        p.innerHTML = json.msg;
                    }
					
					//将响应文本添加到新元素上
					document.forms[0].appendChild(p);
					btn.disabled = true;//禁用掉按钮
					
					//定时器
					setTimeout(function(){
						document.forms[0].removeChild(p);
						btn.disabled = false;
						if(json.status == 1){
							alert('欢迎登录');
						}
					},1000)//2s
					
					
				}else{
					//响应失败
					alert('响应失败'+xhr.status);
				}
			}else{
				//alert('http请求仍在继续');
			}
		}
		
	//3.设置请求参数
	xhr.open('post','check.php',true);
	
	//4.设置头信息
	xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	
	let date = {
		name: document.getElementsByName('name')[0].value,
		password: document.getElementsByName('password')[0].value
		
	};
	
	//5.发送请求
	let date_json = JSON.stringify(date);
	xhr.send('date='+date_json);
	

		
	}

</script>
</body>
</html>

运行实例 »

check.php

实例

<?php

//将json转为php对象
$user = json_decode($_POST['date']);

$name = $user->name;
$password = $user->password;

$pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root');
$sql = "SELECT * FROM `admin` WHERE `name`='{$name}' AND `password`='{$password}'";

$stmt = $pdo->prepare($sql);
$stmt->execute();
if($stmt->rowcount()){
	echo json_encode(['status'=>1,'msg'=>'登录成功,正在跳转...']);
	exit;
}else{
	echo json_encode(['status'=>0,'msg'=>'邮箱或密码错误']);
	exit;
}

运行实例 »

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

Ajax工作原理和完整流程:

YD4XSCN68XVO}0Y]O@ET1RA.png

个人总结:

        Ajax主要就是记住几个步骤。

method为get,send为null;method为post,send为具体请求,且需要设置头信息;

批改状态:未批改

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

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

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