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 相关文章推荐
基于mysql的论坛(7)
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
php 输出双引号&quot;与单引号'的方法
May 09 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 PHP
php微信开发接入
Aug 27 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 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的图形函数中显示汉字
2006/10/09 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
php判断目录存在的简单方法
2019/09/26 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
javascript数组去掉重复
2011/05/12 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python语法快速入门指南
2015/10/12 Python
Python实现KNN邻近算法
2021/01/28 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
Python基于Faker假数据构造库
2020/11/30 Python
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
幼儿教师个人求职信范文
2013/09/21 职场文书
小学二年级评语
2014/04/21 职场文书
煤矿安全生产标语
2014/06/06 职场文书
小学学校评估方案
2014/06/08 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
店铺转让协议书
2015/01/29 职场文书
2015年教学管理工作总结
2015/05/20 职场文书