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下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
php中对xml读取的相关函数的介绍一
Jun 05 PHP
PHP生成excel时单元格内换行问题的解决方法
Aug 26 PHP
php URL验证正则表达式
Jul 19 PHP
php while循环得到循环次数
Oct 26 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
php中strtotime函数性能分析
Nov 20 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
document.createElement()用法
2013/03/13 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
python统计cpu利用率的方法
2015/06/02 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
植物生产学专业求职信
2014/08/08 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
2014年药房工作总结
2014/11/22 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
mysql查询结果实现多列拼接查询
2022/04/03 MySQL