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 相关文章推荐
Windows下PHP的任意文件执行漏洞
Oct 09 PHP
基于文本的留言簿
Oct 09 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
php过滤XSS攻击的函数
Nov 12 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
PHP生成器简单实例
May 13 PHP
PHP.vs.JAVA
Apr 29 PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
Feb 10 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 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
PHP 和 HTML
2006/10/09 PHP
php多文件上传下载示例分享
2014/02/20 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
javascript的this关键字详解
2019/05/20 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
学习python (1)
2006/10/31 Python
Python读写Redis数据库操作示例
2014/03/18 Python
python友情链接检查方法
2015/07/08 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
python pillow模块使用方法详解
2019/08/30 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
银行自荐信范文
2013/10/07 职场文书
消防应急演练方案
2014/02/12 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
关于安全的广播稿
2014/10/23 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
推销搭讪开场白
2015/05/28 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电