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 一元分词算法
Nov 30 PHP
PHP学习之数组的定义和填充
Apr 17 PHP
php替换字符串中间字符为省略号的方法
May 04 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
php把时间戳转换成多少时间之前函数的实例
Nov 16 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
PDO::commit讲解
Jan 27 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
php简单静态页生成过程
2008/03/27 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
python基础while循环及if判断的实例讲解
2017/08/25 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
python实现代码统计程序
2019/09/19 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
学校三八妇女节活动情况总结
2014/03/09 职场文书
分层教学实施方案
2014/03/19 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
Python函数式编程中itertools模块详解
2021/09/15 Python