您好,欢迎访问一九零五行业门户网

PHP+AJAX实现投票功能的方法

这篇文章主要介绍了php+ajax实现投票功能的方法,以完整实例形式分析了php结合ajax实现投票功能的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了php+ajax实现投票功能的方法。分享给大家供大家参考。具体如下:
在这个 ajax 实例中,我们将演示一个投票程序,网页在不重新加载的情况下,,就可以获得结果。
本例包括四个元素:
① html 表单
② javascript
③ php 页面
④ 存放结果的文本文件
一、html 表单
这是 html 页面。它包含一个简单的 html 表单,以及一个与 javascript 文件的连接:
do you like php and ajax so far?yes:
no:
例子解释 - html 表单
正如您看到的,上面的 html 页面包含一个简单的 html 表单,其中的
元素带有两个单选按钮。表单这样工作:
1. 当用户选择 yes 或 no 时,会触发一个事件
2. 当事件触发时,执行 getvote() 函数
3. 围绕该表单的是名为 poll 的
。当数据从 getvote() 函数返回时,返回的数据会替代该表单。二、文本文件
文本文件 (poll_result.txt) 中存储来自投票程序的数据。
它类似这样:
0||0
第一个数字表示 yes 投票,第二个数字表示 no 投票。
注释:记得只允许您的 web 服务器来编辑该文本文件。不要让其他人获得访问权,除了 web 服务器 (php)。
三、javascript
javascript 代码存储在 poll.js 中,并于 html 文档相连接:
var xmlhttpfunction getvote(int){xmlhttp=getxmlhttpobject()if (xmlhttp==null){ alert (browser does not support http request) return} var url=poll_vote.phpurl=url+?vote=+inturl=url+&sid=+math.random()xmlhttp.onreadystatechange=statechanged xmlhttp.open(get,url,true)xmlhttp.send(null)} function statechanged() { if (xmlhttp.readystate==4 || xmlhttp.readystate==complete) { document.getelementbyid(poll). innerhtml=xmlhttp.responsetext; } } function getxmlhttpobject(){ var objxmlhttp=nullif (window.xmlhttprequest){ objxmlhttp=new xmlhttprequest()}else if (window.activexobject){ objxmlhttp=new activexobject(microsoft.xmlhttp)}return objxmlhttp}
例子解释:
statechanged() 和 getxmlhttpobject 函数与 php 和 ajax 请求 这一节中的例子相同。
getvote() 函数
当用户在 html 表单中选择 yes 或 no 时,该函数就会执行。
1. 定义发送到服务器的 url (文件名)
2. 向 url 添加参数 (vote),参数中带有输入字段的内容
3. 添加一个随机数,以防止服务器使用缓存的文件
4. 调用 getxmlhttpobject 函数来创建 xmlhttp 对象,并告知该对象当触发一个变化时执行 statechanged 函数
5. 用给定的 url 来打开 xmlhttp 对象
6. 向服务器发送 http 请求
四、php页面
由 javascript 代码调用的服务器页面是名为 poll_vote.php 的一个简单的 php 文件。
result:yes: %
no: %
例子解释:
所选的值从 javascript 传来,然后会发生:
1. 获取 poll_result.txt 文件的内容
2. 把文件内容放入变量,并向被选变量累加 1
3. 把结果写入 poll_result.txt 文件
4. 输出图形化的投票结果
希望本文所述对大家的php程序设计有所帮助。
其它类似信息

推荐信息