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产生动态的影像图
Oct 09 PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
Yii配置与使用memcached缓存的方法
Jul 13 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 PHP
php将xml转化对象的实例详解
Nov 17 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_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
javascript实现yield的方法
2013/11/06 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
Js面试算法详解
2018/04/08 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python写的英文字符大小写转换代码示例
2015/03/06 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
python处理RSTP视频流过程解析
2020/01/11 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python实现转换图片背景颜色代码
2020/04/30 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
党员教师一句话承诺
2014/05/30 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
医学生自荐信范文
2015/03/05 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
关于vue-router-link选择样式设置
2022/04/30 Vue.js