php的无刷新操作实现方法分析


Posted in PHP onFebruary 28, 2020

本文实例讲述了php的无刷新操作实现方法。分享给大家供大家参考,具体如下:

方法一:

我们通过http的204状态码,页面不跳转。

1.html代码如下:

<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <a href="./add.php" rel="external nofollow" >投票</a>
</body>
</html>

add.php代码如下:

<?php
$num = file_get_contents('./num.txt');
$num = intval($num) + 1;
file_put_contents('./num.txt', $num);

header('HTTP/1.1 204 No Content');

方法二:

利用图片加载的特性,来完成请求。

<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <input type="button" value="投票" id="addBtn" />
  <div id="request"></div>
</body>
<script type="">
  var addBtn = document.getElementById("addBtn");
  addBtn.onclick = function() {
    //创建img标签
    var img = document.createElement("img");

    //设置标签src属性
    img.setAttribute("src", "add.php");
    document.createElement("request").appendChild(img);
  };
</script>
</html>

方法三:

利用css,javascript的加载特性,完成请求,原理与img加载一样。

方法四:

利用iframe的特性

2.html代码如下:

<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <form action="ret.php" method="post" target="request">
    用户名:<input type="text" name="uname" value="" />
    密码:<input type="password" name="upwd" value="" />
    <input type="submit" name="submit" value="提交" />
  </form>
  <iframe width="0" height="0" frameborder="0" name="request"></iframe>
  <div id="result"></div>
</body>
</html>

ret.php代码如下:

<?php
$uname = !empty($_POST['uname']) ? $_POST['uname'] : '';
$upwd = !empty($_POST['upwd']) ? $_POST['upwd'] : '';

if($uname == 'admin' && $upwd == '123456') {
  echo "<script>parent.document.getElementById('result').innerHTML='OK';</script>";
} else {
  echo "<script>parent.document.getElementById('result').innerHTML='NO';</script>";
}

我们通过设置form提交的target到iframe,使表单无跳转。

ajax能实现文件上传吗?

分析,文件上传,是需要客户端把文件内容发送到服务器,也就是XHR对象在POST数据时,把文件内容也发送给服务器。
也就是XHR对象能够获取你要上传的文件内容,但是出于安全的考虑,JS是无法获取本地文件内容的。

ajax插件是如何实现文件上传的?

1、iframe
2、flash实现,如swfupload
3、html5 (添加了文件读取api,使ajax上传文件成为可能。)

更多关于PHP相关内容可查看本站专题:《PHP+ajax技巧与应用小结》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php实现ping
Oct 09 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
php 判断数组是几维数组
Mar 20 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
php去除二维数组的重复项方法
Nov 03 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 PHP
Laravel配合jwt使用的方法实例
Oct 25 PHP
php下的原生ajax请求用法实例分析
Feb 28 #PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 #PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 #PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 #PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 #PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 #PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 #PHP
You might like
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
Yii2中datetime类的使用
2016/12/17 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
python清空命令行方式
2020/01/13 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
SQL Server笔试题
2012/01/10 面试题
灰雀教学反思
2014/04/28 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
生日宴会祝酒词
2015/08/10 职场文书