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 数组排序方法总结 推荐收藏
Jun 30 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
php session劫持和防范的方法
Nov 12 PHP
PHP实现的购物车类实例
Jun 17 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 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
session 的生命周期是多长
2006/10/09 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
href下载文件根据id取url并下载
2014/05/28 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
node后端服务保活的实现
2019/11/10 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
python测试驱动开发实例
2014/10/08 Python
Python中的模块和包概念介绍
2015/04/13 Python
python实现SMTP邮件发送功能
2020/06/16 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
企业演讲稿范文大全
2014/05/20 职场文书
节能减耗标语
2014/06/21 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
热情服务标语
2014/10/07 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
员工工作表扬信
2015/05/05 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
利用js实现简单开关灯代码
2021/11/23 Javascript