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
深入eAccelerator与memcached的区别详解
Jun 06 PHP
php自动加载机制的深入分析
Jun 08 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
python复制文件代码实现
2013/12/23 Python
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
numba提升python运行速度的实例方法
2021/01/25 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
申请任职学生会干部自荐书范文
2014/02/13 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
学校党支部承诺书
2015/04/30 职场文书
用Python实现屏幕截图详解
2022/01/22 Python