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生成静态页面教程
Jan 10 PHP
php中取得文件的后缀名?
Feb 20 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
php-7.3.6 编译安装过程
Feb 11 PHP
PHP判断是否是json字符串
Apr 01 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
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
分享php邮件管理器源码
2016/01/06 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python实现大文件分割与合并
2019/07/22 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
如何在django中运行scrapy框架
2020/04/22 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
医务人员自我评价
2014/01/26 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
安全技术说明书
2014/05/09 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL