使用ajax加上get和post方法,通过后台加载数据,并在网页上进行显示

举报
小小张自由--张有博 发表于 2021/12/27 20:43:58 2021/12/27
【摘要】 Ajax 使用ajax加上get和post方法,通过后台加载数据,并在网页上进行显示

学习Ajax之前必须有html,CSS,JS,jQuery(了解)的相关知识。

1.什么是Ajax?


Ajax在前端主要的功能是获取服务器的数据。

经常使用Ajax来进行异步加载,也就是不影响整个窗口的前提下,进行页面部分的加载改变。

Ajax异步!!!,Ajax的全称自然就是:Asynchronous(异步) JavaScript And XML

2.Ajax的使用 Get方法


在学习php基础语法时候,我们通过跳转到一个新的页面来实现,就像php语法的第7节一样。下面我们使用Ajax来,直接请求服务器发送数据,不需要跳转一个新的页面。

在元素JS中来实现Ajax主要的类就是XMLHttpRequest,它的使用一般有四个步骤:

1.创建XMLHttpRequest对象
2.准备发送网络请求
3.开始发送网络请求
4.指定回调函数

这里使用ajax,能够识别用户名是否已存在的例子:

<?php 

	$username = $_GET["username"];
	//这里应该查询数据库,这里只是一个模拟数据库
	if($username == 'zhangsan'){
		echo "username exists";
	}else{
		echo "username OK";
	}

 ?>


再在wamp中,创建一个register.html,来作为前端访问的页面:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>注册界面</title>
	<script type="text/javascript">
		window.onload = function(){
			var btn = document.getElementById("btn");
			btn.onclick = function(){
				var username = document.getElementById("username").value;
				//使用JS代码进行checkUsername.php这个文件的访问,将Username传递给这个文件
				//从这开始就使用ajax来操作了。
			//<!--第一步:创建XMLHttpRequest对象-->
				var xhr = new XMLHttpRequest();
			//<!--第二步:准备发送-->
				//这里的open方法有三个参数。
				//第一个参数,使用的什么方法。
				//第二个参数url,这里因为是get请求,所以url后面是要跟上参数的!!!
				//第三个参数,同步还是异步,true异步,false同步
				xhr.open("get","checkUsername.php?username="+username,true);
			//<!--第三步:执行发送-->
				xhr.send(null);
			//<!--第四步:指定回调函数-->
				xhr.onreadystatechange = function(){
					//responseText返回的是字符串
					var result = xhr.responseText;
					console.log(result);
					document.getElementById("result").innerText = result;
				};
			};
		};
	</script>
</head>
<body>
	<h1>注册界面</h1>
	<form action="register.php" method="get">
		用户名:<input type="text" name="username" id="username">
			<input type="button" value="验证用户名" id="btn">
			<span id="result"></span>
			<br>
		密码:<input type="password" name="password">
			<input type="submit" name="" value="提交">
	</form>
</body>
</html>

3.Ajax的使用 Post方法

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>注册界面</title>
	<script type="text/javascript">
		window.onload = function(){
			var btn = document.getElementById("btn");
			btn.onclick = function(){
				var username = document.getElementById("username").value;
				//使用JS代码进行checkUsername.php这个文件的访问,将Username传递给这个文件
				//从这开始就使用ajax来操作了。
			//<!--第一步:创建XMLHttpRequest对象-->
				var xhr = null
				//由于IE6以下的版本是没有XMLhttpRequest这个对象的,所以做一个兼容性判断。
				if (window.XMLHttpRequest) {
					xhr = new XMLHttpRequest();
				}else{
					//IE6以下版本,都是使用ActiveXObject
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
			//<!--第二步:准备发送-->
				//这里的open方法有三个参数。
				//第一个参数,使用的什么方法。
				//第二个参数url,这里因为是get请求,所以url后面是要跟上参数的!!!
				//第三个参数,同步还是异步,true同步,false异步,默认异步
				// xhr.open("get","checkUsername.php?username="+username,true);
				xhr.open("post","checkUsername.php",true);
			//<!--第三步:执行发送-->
				//对于post请求,参数应该放到请求体当中
				var param = "username=" + username
				//设置xhr请求头信息,这个步骤仅仅是针对于post请求才有的!!!
				xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
				xhr.send(param);
			//<!--第四步:指定回调函数-->
				xhr.onreadystatechange = function(){
					//readyState等于4代表的是xhr的完成相应
					if(xhr.readyState == 4){
						//status等于200,代表正常
						if(xhr.status == 200){
							//除了responseText还有xhr.responseXML,就是不同的格式。
							var result = xhr.responseText;
							console.log(result);
							document.getElementById("result").innerText = result;
						}
					}
				};
			};
		};
	</script>
</head>
<body>
	<h1>注册界面</h1>
	<form action="register.php" method="post">
		用户名:<input type="text" name="username" id="username">
			<input type="button" value="验证用户名" id="btn">
			<span id="result"></span>
			<br>
		密码:<input type="password" name="password">
			<input type="submit" name="" value="提交">
	</form>
</body>
</html>

上面就是完成了一个用户名,电话,电子邮箱的一个唯一性检验

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。