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 相关文章推荐
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
PHP 远程关机实现代码
Nov 10 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
PHP扩展开发入门教程
Feb 26 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
生成二维码方法汇总
2014/12/26 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
python 远程统计文件代码分享
2015/05/14 Python
构建Python包的五个简单准则简介
2015/06/15 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
C#笔试题集合
2013/06/21 面试题
培训主管的岗位职责
2013/11/23 职场文书
先进个人获奖感言
2014/01/24 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
家庭贫困证明
2014/09/23 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
一篇文章弄懂Python中的内建函数
2021/08/07 Python
MySQL存储过程及语法详解
2022/08/05 MySQL