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 全角转半角实现代码
May 16 PHP
php的array_multisort()使用方法介绍
May 16 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
PHP htmlentities()函数用法讲解
Feb 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
基于ionic实现下拉刷新功能
2018/05/10 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
python支持断点续传的多线程下载示例
2014/01/16 Python
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
python实现大文件分割与合并
2019/07/22 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
英国假发网站:Hothair
2018/02/23 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
计算机专业个人求职自荐信
2013/09/21 职场文书
硕士研究生个人求职信
2013/12/04 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
行政介绍信范文
2015/05/04 职场文书
婚宴新郎致辞
2015/07/28 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
把77A收信机改造成收音机
2022/04/05 无线电