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数据库开发知多少
Oct 09 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
使用php清除bom示例
Mar 03 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
浅谈PHP安全防护之Web攻击
Jan 03 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
PHP大文件分割分片上传实现代码
Dec 09 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
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
Python实现直播推流效果
2019/11/26 Python
Pytorch之Variable的用法
2019/12/31 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
调解协议书
2014/04/16 职场文书
小学生期末评语大全
2014/04/21 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android