PHP+AJAX 投票器功能


Posted in PHP onNovember 11, 2017

终于到AJAX,翻译过来就是”异步Javascript和XML”,他可以实现网页内容的部分加载,可提高用户体验。现在有很多网站都有用这技术,反正你知道他能实现网页的异步更新就差不多了。当然下面的例子都相对简单,并没有体现它这一特点~

投票器

新建文件【 AJAX投票.html】

<html>
<head>
  <script type="text/javascript">
    // 这里是js代码
    function getVote(int) {
      if (window.XMLHttpRequest) {
        // 创建 XMLHttpRequest 对象
        // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
        xmlhttp = new XMLHttpRequest();
      } else {
        //IE6, IE5 浏览器执行的代码
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      // 监听响应
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState ==4 && xmlhttp.status == 200) {
          // 找到 id 为 poll 的控件
          document.getElementById('poll').innerHTML = xmlhttp.responseText;
        }
      }
      // 向PHP脚本传递主要参数q
      xmlhttp.open("GET", "poll_vote.php?q=" + int, true);
      xmlhttp.send();
    }
  </script>
</head>
<body>
  <div id="poll">
    <h3>你喜欢吃吗?</h3>
    <form>
      是:<input type="radio" name="vote" value="0" onclick="getVote(this.value)"><br>
      否:<input type="radio" name="vote" value="1" onclick="getVote(this.value)">
    </form>
  </div>
</body>
</html>

创建【poll_vote.php】脚本文件

<?php 
  // 接收参数q
  $vote = htmlspecialchars($_REQUEST['q']);
  // 获取文件中存储的数据(这里需要在同一目录下新建一个poll_result.txt文件)
  $filename = "poll_result.txt";
  $conn = file($filename);
  // 将数据分割到数组
  $array = explode("||", $conn[0]);
  $yes = $array[0];
  $no = $array[1];
  $count = $array[2];
  if ($vote == 0) {
    $yes += 1;
    $count += 1;
  }
  if ($vote == 1) {
    $no += 1;
    $count += 1;
  }
  // 将投票数据保存到文档
  $insertvote = $yes . '||' . $no . '||' . $count;
  $fp = fopen($filename, "w");
  fputs($fp, $insertvote);
  fclose($fp);
 ?>
 <h2>结果:</h2>
 <table>
  <tr>
    <td>是:</td>
    <td>
      <span style="display: inline-block; background-color: green; width: <?php echo 100 * round($yes / ($yes + $no), 2);?>px; height: 20px;"></span><?php echo 100 * round($yes / ($yes + $no), 2); ?>%
    </td>
  </tr>
  <tr>
    <td>否:</td>
    <td>
      <span style="display: inline-block; background-color: red; width: <?php echo 100 * round($no / ($yes + $no), 2);?>px; height: 20px;"></span><?php echo 100 * round($no / ($yes + $no), 2); ?>%
    </td>
  </tr>
 </table>
 <p><?php echo "参与人数:" . $count; ?></p>

新建一个空白的文档 【poll_result.txt】

此时目录:

|-AJAX投票.html
|-poll_vote.php
|-poll_result.txt

如果不同则需修改上面相应的代码

效果:

PHP+AJAX 投票器功能
PHP+AJAX 投票器功能

总结

以上所述是小编给大家介绍的PHP+AJAX 投票器功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

PHP 相关文章推荐
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 PHP
PHP实现字母数字混合验证码功能
Jul 11 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 #PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 #PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 #PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 #PHP
PHP用函数嵌入网站访问量计数器
Oct 27 #PHP
PHP实现网站访问量计数器
Oct 27 #PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 #PHP
You might like
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
php时间戳转换代码详解
2019/08/04 PHP
网页中CDATA标记的说明
2010/09/12 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
js数据类型检测总结
2018/08/05 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
Python中的pprint折腾记
2015/01/21 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
python默认参数调用方法解析
2020/02/09 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
广州品高软件.net笔面试题目
2012/04/18 面试题
为什么要做架构设计
2015/07/08 面试题
小学三年级数学教学反思
2014/01/31 职场文书
航空学院求职信
2014/06/11 职场文书
老员工辞职信范文
2015/05/12 职场文书
js 实现验证码输入框示例详解
2022/09/23 Javascript