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和ACCESS写聊天室(三)
Oct 09 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 #PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 #PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 #PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 #PHP
PHP简单实现循环链表功能示例
Nov 10 #PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 #PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 #PHP
You might like
PHP实现多图片上传类实例
2014/07/26 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
vue编写简单的购物车功能
2021/01/08 Vue.js
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
python中kmeans聚类实现代码
2018/02/23 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
numpy 声明空数组详解
2019/12/05 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
python 调用js的四种方式
2021/04/11 Python
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS