AJAX(第一话 Ajax的get提交和post提交)

1 篇文章 0 订阅

前置知识点

获取表单提交的数据

<form action="post.php" method="post">
    <input type="text" name="username" placeholder="请输入用户名"/><br>
    <input type="password" name="password" placeholder="请输入密码"/><br>
    <input type="submit" value="提交"/>
</form>
<?php
 /**
 * Created by 叶孤城 on 2018/12/3.
 */
    //http://127.0.0.1/get.php?username=%E6%97%A0%E7%97%95&password=123
    echo '<h1>'.$_POST['username'].'欢迎你</h1>';//无痕欢迎你
?>

模拟用户查询

<form action="person.php" method="post">
			<input type="text" name="username">
			<br>
			<input type="submit" value="提交">
		</form>
<?php

	$personArr = array(
		'无痕' =>array('name'=>'无痕','age'=>'18','hobby'=>'reading'),
		'zhangsan'=>array('name'=>'zhangsan','age'=>'20','hobby'=>'writing')			
		 );
	//通过post获取提交的数据
	$key=$_POST['username'];
	//从数组中获取对应的用户数据
	//print_r($personArr[$key]);
	//拼成有用的信息
	$aPerson=$personArr[$key];
	echo '你好'.$aPerson['name'],'<br>';
	echo '你今年才'.$aPerson['age'].'岁','<br>';
	echo '你喜欢'.$aPerson['hobby'];
  ?>

实现文件上传功能

如果要使用文件上传功能:form表单还需要设置enctype='mutipart/form'

<h1>上传文件</h1>
	<!-- 上传文件必须要设置enctype属性enctype="multipart/form-data" -->
	<form action="upfile.php" method="post" enctype="multipart/form-data">
		<input type="file" name="upfile">
		<input type="submit" value="提交">
	</form>
<?php
	print_r($_FILES);
	echo "<br>";
	$fileArr=$_FILES['upfile'];
	$fileName=$fileArr['name'];
	$filetype=$fileArr['type'];
	$filetmpname=$fileArr['tmp_name'];
	echo 'fileName:'.$fileName,'<br>';  //fileName:QQ文件目录.txt
	echo 'filetmpname:'.$filetmpname;//filetmpname:C:\Windows\Temp\phpC7B9.tmp
  ?>

将文件保存到指定目录中

    //如何在PHP中将文件保存
	move_uploaded_file($filetmpname, 'files/'.$fileName);

修改php上传文件大小限制:

php.ini中

upload_max_filesize= xxxM ;上传文件的最大限制

post_max_size=xxxM:通过Post提交的最大的数据大小

由于上传的文件太大,所以需要占用不少的上传时间,所以需要配置如下参数

max_excution_tim=xxxxx   设置最长的执行时间,单位为秒

max_input_time =xxx  接收提交数据的时间限制  单位为秒

memory_limit= xxx M 最大的内存消耗

 

Ajax基本概念:

普通的HTTP请求:如果需要发出http请求:页面会刷新,如果网速很慢,刷新页面势极少量的信息提交必会重新加载,造成不不要的资源浪费,一些量的提交给服务器,没必要这个页面刷新。

Ajax:在不刷新页面的情况下,给服务器发送HTTP请求

案例:

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<h1>发送get类型的ajax请求</h1>
	<button id="ajaxBtn">发送ajax请求</button>
	<script type="text/javascript">

		document.querySelector("#ajaxBtn").onclick=function(){
			//创建异步对象
			var ajaxObj=new XMLHttpRequest();
			//设置请求的url参数
			//参数1:请求方法 参数2:请求的URL
			//get提交的数据,是直接追加到url后面格式为:xxx.php?username=wuhen
			//xxx.php?username='+document.querySelector("input").value
			ajaxObj.open("get","ajax.php?username=wuhen");
			//发送请求
			ajaxObj.send();
			//注册事件 onreadystatechange 状态改变就会调用
			//如果要在数据完美请求回来的时候才调用,我们需要手动的写一些判断的逻辑
			ajaxObj.onreadystatechange=function(){
				//为了保证数据完整回来,需要判断该两个值
				if (ajaxObj.readyState==4&&ajaxObj.status==200) {
					//如果能够进来,说明数据请求回来了,而且请求页面是存在的
					console.log('数据完美回来了');
					//数据保存在异步对象中
					console.log(ajaxObj.responseText);//ajax_php_msg
					document.querySelector('h1').innerHTML=ajaxObj.responseText;
				} 
			}
		}
	</script>
</body>
</html>
<?php
	echo $_GET['username'];
  ?>

 

Ajax发送Post请求

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<h1>post提交ajax请求</h1>
	<input type="text" name="username" id="username">
	<button id="ajaxBtn">提交</button>
	<script>
		document.querySelector('#ajaxBtn').onclick=function(){
			var ajaxObj = new XMLHttpRequest();
			//使用post提交
			ajaxObj.open('post','ajax.php');
			//如果使用post提交数据必须设置如下内容
			//修改了发送给服务器请求报文的内容
			//如果需要想HTML表单那样Post数据,请使用setRequestHeader()来添加
			//HTTP头,然后在send()方法中规定您希望发送的数据
			ajaxObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
			//post请求发送的数据写在send方法中,格式:name=wuhen&age=24
			ajaxObj.send('username='+document.querySelector('#username').value);
			ajaxObj.onreadystatechange=function(){
				if (ajaxObj.readyState==4&&ajaxObj.status==200) {
					console.log(ajaxObj.responseText);
				}
			}
		}
	</script>
</body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值