如何在PHP中利用AJAX实现一个投票功能

  介绍

这期内容当中小编将会给大家带来有关如何在PHP中利用AJAX实现一个投票功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

本例包括四个元素:

①HTML表单JavaScript

②③PHP页面
④存放结果的文本文件

<强>一、HTML表单

这是HTML页面。它包含一个简单的HTML表单,以及一个与JavaScript文件的连接:

& lt; html>   & lt; head>   & lt; https://www.yisu.com/zixun/script  src=" poll.js ">   
  

你喜欢PHP和AJAX迄今为止吗?

  <>形式   是的:      
  没有:         

例子解释- html表单

正如您看到的,上面的html页面包含一个简单的html表单,其中的& lt; div>元素带有两个单选按钮。

表单这样工作:

1。当用户选择“yes"或“no"时,会触发一个事件
2。当事件触发时,执行getVote()函数
3。围绕该表单的是名为“poll"的& lt; div>。当数据从getVote()函数返回时,返回的数据会替代该表单。

<强>二、文本文件

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

它类似这样:

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

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

<强>三,JavaScript

JavaScript代码存储在“poll.js"中,并于HTML文档相连接:

var  xmlHttp   function  getVote (int)   {   xmlHttp=GetXmlHttpObject ()   if  (xmlHttp==null)   {   ,alert  (“Browser  does  not  support  HTTP  Request")   ,返回   },   var  url=皃oll_vote.php"   url=url +“?投票=? int   url=url +“, sid=? math . random ()   xmlHttp.onreadystatechange=stateChanged    xmlHttp.open (“GET", url,真的)   xmlHttp.send(空)   },   function  statechange (),   {,   ,if  (xmlHttp.readyState==4, | |, xmlHttp.readyState==癱omplete")   {大敌;   . getelementbyid (“poll")。   ,innerHTML=xmlHttp.responseText;   }大敌;   },   function  GetXmlHttpObject ()   {,   var  objXMLHttp=null   if  (window.XMLHttpRequest)   {   ,objXMLHttp=new  XMLHttpRequest ()   }   else  if  (window.ActiveXObject)   {   ,objXMLHttp=new  ActiveXObject (“Microsoft.XMLHTTP")   }   return  objXMLHttp   }

<>强例子解释:

statechange()和GetXmlHttpObject函数与PHP和AJAX请求这一节中的例子相同。

<强> getVote()函数

当用户在HTML表单中选择“yes"或“no"时,该函数就会执行。

1。定义发送到服务器的url(文件名)
2。向url添加参数(投票),参数中带有输入字段的内容
3。添加一个随机数,以防止服务器使用缓存的文件
4。调用GetXmlHttpObject函数来创建XMLHTTP对象,并告知该对象当触发一个变化时执行statechange函数
5。用给定的url来打开XMLHTTP对象
6。向服务器发送HTTP请求

<强>四,PHP页面

由JavaScript代码调用的服务器页面是名为“poll_vote.php"PHP的一个简单的文件。

& lt; PHP ?   vote 美元;=,$ _REQUEST[& # 39;投票# 39;];//get  content  of 文本文件   时间=美元filename “poll_result.txt";   $ content =,文件(文件名美元);//put  content 拷贝数组   $ array =,爆炸(“| |“,,美元内容[0]);   美元$ yes =,数组[0];   美元$ no =,数组[1];   if  (vote 美元;==,0)   {   美元,美元yes =, yes  +, 1;   }   if  (vote 美元;==,1)   {   美元,美元no =, no  +, 1;   }//insert  votes 用txt 文件   美元$ insertvote =,是的!”| |“。没有美元;   $ fp =, fopen(文件名,美元“w");   fputs (fp, insertvote美元);   文件关闭(fp);   比;   & lt; h3>结果:& lt;/h3>   & lt; table>   & lt; tr>   & lt; td>是的:& lt;/td>   & lt; td>   & lt; img  src=https://www.yisu.com/zixun/皃oll.gif”   宽度=' <?php echo(100 *轮(是的美元/(没有+是的美元),2));?> '   身高=?0”>   <?php echo(100 *轮(是的美元/(没有+是的美元),2));> % ?   

如何在PHP中利用AJAX实现一个投票功能