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 addslashes和mysql_real_escape_string
Jan 24 PHP
PHP操作xml代码
Jun 17 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
php+laravel依赖注入知识点总结
Nov 04 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读取目录下所有文件的代码
2008/01/07 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
jquery validate demo 基础
2015/10/29 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
销售行业个人求职自荐信
2013/09/25 职场文书
高校自主招生自荐信
2013/12/09 职场文书
班班通项目实施方案
2014/02/25 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
初中地理教学反思
2016/02/19 职场文书