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 相关文章推荐
杏林同学录(七)
Oct 09 PHP
phpMyAdmin2.11.6安装配置方法
Aug 24 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
php短网址和数字之间相互转换的方法
Mar 13 PHP
php字符串分割函数用法实例
Mar 17 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 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
Syphon 使用方法
2021/03/03 冲泡冲煮
PHP新手上路(十二)
2006/10/09 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
php把session写入数据库示例
2014/02/26 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
详解JavaScript 的变量
2019/03/08 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
优秀毕业自我鉴定
2014/02/15 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
关于车尾的标语大全
2015/08/11 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
nginx服务器的下载安装与使用详解
2021/08/02 Servers