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预定义常量
Dec 25 PHP
PHP array_flip() 删除重复数组元素专用函数
May 16 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
Smarty foreach控制循环次数的一些方法
Jul 01 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 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字符串 ==比较运算符的副作用
2009/10/21 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
解决php写入数据库乱码的问题
2019/09/17 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
python获取linux系统信息的三种方法
2020/10/14 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
应届生高等护理求职信
2013/10/12 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
期末自我鉴定
2014/02/02 职场文书
上课迟到检讨书
2014/02/19 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
合作协议书格式范本
2016/03/21 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers