PHP 教程
1. PHP 教程 2. PHP 简介 3. PHP 安装 4. PHP 语法 5. PHP 变量 6. PHP 字符串变量 7. PHP 运算符 8. PHP If…Else 语句 9. PHP Switch 语句 10. PHP 数组 11. PHP 数组排序 12. PHP While 循环 13. PHP For 循环 14. PHP 函数 15. PHP 表单 16. PHP $_GET 变量 17. PHP $_POST 变量 18. PHP 多维数组 19. PHP date() 函数 20. PHP include 和 require 21. PHP 文件 22. PHP 文件上传 23. PHP Cookie 24. PHP Session 25. PHP 邮件 26. PHP 安全 E-mail 27. PHP 错误处理 28. PHP 异常处理 29. PHP 过滤器 30. PHP MySQL 简介 31. PHP 连接 MySQL 32. PHP MySQL 创建数据库 33. PHP MySQL 插入数据 34. PHP MySQL 读取数据 35. PHP MySQL Where 子句 36. PHP MySQL Order By 关键词 37. PHP MySQL Update 38. PHP MySQL Delete 39. PHP 数据库 ODBC 40. PHP XML Expat 解析器 41. PHP XML DOM 42. PHP XML SimpleXML 43. PHP – AJAX 与 PHP 44. PHP 实例 AJAX 与 MySQL 45. PHP 实例 AJAX 与 XML 46. PHP 实例 AJAX 实时搜索 47. PHP 实例 AJAX RSS 阅读器 48. PHP 实例 AJAX 投票 49. PHP 5 Array 函数 50. PHP 5 Calendar 函数 51. PHP 5 Date/Time 函数 52. PHP 5 Directory 函数 53. PHP Error 和 Logging 函数 54. PHP 5 Filesystem 函数 55. PHP Filter 函数 56. PHP FTP 函数 57. PHP HTTP 函数 58. PHP Libxml 函数 59. PHP Mail 函数 60. PHP 5 Math 函数 61. PHP Misc. 函数 62. PHP 5 MySQLi 函数 63. PHP 5 SimpleXML 函数 64. PHP 5 String 函数 65. PHP XML 函数 66. PHP Zip File 函数 67. PHP 5 Timezones 68. PHP 图像处理 69. PHP RESTful 70. PHP 正则表达式(PCRE) 71. PHP 可用的函数

PHP 实例 AJAX 投票

PHP 实例 - AJAX 投票


AJAX 投票

在下面的实例中,我们将演示一个投票程序,通过它,投票结果在网页不进行刷新的情况下被显示。

你喜欢 PHP 和 AJAX 吗?

是:
否:

实例解释 - HTML 页面

当用户选择上面的某个选项时,会执行名为 "getVote()" 的函数。该函数由 "onclick" 事件触发。

poll.html 文件代码如下:


<html>

<head>

<meta charset="utf-8">

<title>(.com)</title>

<script>

function getVote(int) {

  if (window.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)

    {

      document.getElementById("poll").innerHTML=xmlhttp.responseText;

    }

  }

  xmlhttp.open("GET","poll_vote.php?vote="+int,true);

  xmlhttp.send();

}

</script>

</head>

<body>



<div id="poll">

<h3>你喜欢 PHP 和 AJAX 吗?</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>

getVote() 函数会执行以下步骤:

  • 创建 XMLHttpRequest 对象
  • 创建在服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意添加到 URL 末端的参数(q)(包含下拉列表的内容)

PHP 文件

上面这段通过 JavaScript 调用的服务器页面是名为 "poll_vote.php" 的 PHP 文件:


<?php

$vote = htmlspecialchars($_REQUEST['vote']);



// 获取文件中存储的数据

$filename = "poll_result.txt";

$content = file($filename);



// 将数据分割到数组中

$array = explode("||", $content[0]);

$yes = $array[0];

$no = $array[1];



if ($vote == 0)

{

  $yes = $yes + 1;

}



if ($vote == 1)

{

  $no = $no + 1;

}



// 插入投票数据

$insertvote = $yes."||".$no;

$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/($no+$yes),2)); ?>px;

      height:20px;" ></span>

  <?php echo(100*round($yes/($no+$yes),2)); ?>%

  </td>

  </tr>

  <tr>

  <td>否:</td>

  <td>

  <span style="display: inline-block; background-color:red;

      width:<?php echo(100*round($no/($no+$yes),2)); ?>px;

      height:20px;"></span>

  <?php echo(100*round($no/($no+$yes),2)); ?>%

  </td>

  </tr>

</table>

当所选的值从 JavaScript 发送到 PHP 文件时,将发生:

  1. 获取 "poll_result.txt" 文件的内容
  2. 把文件内容放入变量,并向被选变量累加 1
  3. 把结果写入 "poll_result.txt" 文件
  4. 输出图形化的投票结果

文本文件

文本文件(poll_result.txt)中存储来自投票程序的数据。

它存储的数据如下所示:


3||4

第一个数字表示 "Yes" 的投票数,第二个数字表示 "No" 的投票数。

注释:请记得只允许您的 Web 服务器来编辑该文本文件。不要让其他人获得访问权,除了 Web 服务器 (PHP)。