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 清除网页病毒的方法
Dec 05 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
Feb 16 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php cookies中删除的一般赋值方法
May 07 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 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实现图片简单上传
2006/10/09 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
完美的php分页类
2017/10/24 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
跟老齐学Python之重回函数
2014/10/10 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python使用xpath实现图片爬取
2020/09/16 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
迟到检讨书300字
2014/02/14 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
无房证明样本
2015/06/17 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
redis中lua脚本使用教程
2021/11/01 Redis