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 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
一个php作的文本留言本的例子(三)
Oct 09 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
Yii rules常用规则示例
Mar 15 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP异步进程助手async-helper
Feb 05 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
php写入txt乱码的解决方法
Sep 17 PHP
phpstudy隐藏index.php的方法
Sep 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中ob_flush和flush的区别
2014/11/27 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
Redux实现组合计数器的示例代码
2018/07/04 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
python多进程使用函数封装实例
2020/05/02 Python
python redis存入字典序列化存储教程
2020/07/16 Python
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
小学教师听课制度
2014/02/01 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
趣味游戏活动方案
2014/02/07 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
护士自荐信怎么写
2015/03/06 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
关于Vue中的options选项
2022/03/22 Vue.js