> 请注意_( ̄0 ̄)_喔,这个程序只为演示 AJAX,并非正式程序,所以木有做任何严格的重复投票防护。
> 此文主要介绍如何实现多项投票的方法,以及灰常简单的 jQuery 局部刷新的应用方法,o( ∩ω∩ )m。

一. jQuery多项投票演示:
> 这次小邪木有做什么防护,只要刷新页面就可以再次投票,因为此程序的目的只是演示 jQuery 效果。
> 所以,嘎嘎嘎,如果你想要抒发自己强烈的思想感情,然后情不自禁地刷新页面鸟,就随便投票吧。
> 强力的纯洁的无知的传送门 - http://www.evlos.org/apps/demo/ajax_005
二. jQuery多项投票重点代码注释:
//这里小邪只是把和原先那次有明显区别,并且作用较大的代码贴出来作一些说明
//如果有更多疑问,请查看原先的文章,如果还觉得迷糊,请留言询问即可 O(∩_∩)O
function getdata() {
global $dbfile;
$data = file_get_contents($dbfile);
$array = explode('|',$data); //把数据以 | 为分隔,分割到数组
return $array;
}
//在 index.php 使用这个函数的来只是读取投票数据 ”0|0|0|0|0|0|0|0|0“
function showlist() {
global $votenum,$votes;
$data = getdata();
function is_odd($num){ //判断偶数的较另类的方法
return (is_numeric($num)&($num&1));
}
//额,实际上后来小邪并木有使用判断结果,因为觉得没必要以颜色分行
for ($i=0;$i<$votenum;$i++) {
if (is_odd($i)) { $trclass = 'odd'; } else { $trclass = 'even'; }
echo '<tr id="vote_'.($i+1).'" class="'.$trclass.'"><td class="gray">#'.($i+1).'</td><td>'.$votes[$i].'</td><td class="gray">已有 <span class="count vote_'.($i+1).'">'.$data[$i].'</span> 票</td><td class="gray warn">已投票</td><td class="gray button">[投票]</td></tr>'."\n";
//这里给每一行的数据附一个 id,内容为 ”vote_投票编号“
//我们靠 class="count" 来找到投票数,靠 warn 和 button 来变换投票前后显示文字
}
}
//在 index.php 使用这个函数来输出投票列表
$votenum = count($votes);
//在 config.php 里面的这个语句用来统计数组包含的数量
$ivote = $_POST['ivote'];
for ($i=1;$i<=$votenum;$i++) {
if ($ivote=='vote_'.$i) {
$res = $i;
}
}
//在 vote.php 使用这个循环来判断用户所投的票,Post来的数据为 vote_1 vote_2 等
$(document).ready(function(){
$("#vote .button").click( //先找到按键元素,即 ”投票“ 文字处
function() {
var votesorder = $(this).parent().attr("id"); //取父元素的 id 来判断当前所投何票
var count=eval($("#vote ."+votesorder).text())+1; //然后对其票数加一
$("#vote ."+votesorder).css("color","green").text(count); //显示加一后的票数并变色
$("#vote .button").css("display","none"); //隐藏 ”投票"
$("#vote .warn").css("display","inline"); //显示 “已投票”
$.ajax({
type:'POST',
dataType:'text',
url:'vote.php',
data:'ivote='+votesorder
});
//Post发送数据,类型 text,送给 vote.php,内容为父元素的 id
/* $.cookie('vote_s81jaj881jja', 'yes', { expires: 3 }); */
//不打算做 cookie 防护了
}
);
});
三. 局部刷新预习:
$(document).ready(function(){
$("#box .button").click(
function() {
data=$.ajax({url:"time.php",async:false});
/* async表示禁止异步请求,因为我们接下来就要使用返回的数据 */
$("#box .target").html(data.responseText);
}
);
});
> 简单的当前秒数局部刷新演示地址 - http://www.evlos.org/apps/demo/ajax_006
四. 演示程序下载:
> 首先是前面的 jQuery 多项投票演示程序的下载地址,后面则是 jQuery 预习演示程序的下载地址,哈。
> http://code.google.com/p/evlosbox/downloads/detail?name=jquery-more-votes-example-v1.zip
> http://code.google.com/p/evlosbox/downloads/detail?name=jq-areafresh-easy-v1.zip
五. 附言:
> 虽然小邪已经在代码中注释说这个程序木有做严格防护,但是仍然很感谢报告 BUG 的盆友,嘿嘿 ;D。

不错,写得很好。学习了。
@寂寞流星 , 呵呵,荒淫坐上大沙花 ~
顶一下的功能能出就好了 :biggrin:
@yetone , 呵呵,那个已经有插件了 ~
你需要的话可以在官方看看 ~
越来越高级了。。。
@QiQiBoY , 恩恩,越来越深入 ~

4#、5#我每个刷了5票
@winy , 囧 ~ 吼吼吼 ~
围观一下好了~~顺便学下php
@fatkun , 呵呵 请随意哈 ~ :biggrin:
怎么都这么高端!?
@昵称 , 蛋定呵呵,一点点深入嘛 ~
邪应该被脱光丢街上 o(>.<)o
@Showfom , :exclaim: 阿门 ~
小邪是坏淫 ~(>_<)~
刷新再点..点到25了..
@mice , 嘿嘿嘿,坏淫要低调 ~
点到我手酸了。。。
@N , :exclaim: 好多人要把小邪脱光 ~
速度简直是太快了~嫉妒
@北街 , 嘿嘿,这个vps的机房位置是很不错的 ~
拉斯维加斯,有大赌场的地方喔 ~
效果不错……嗯,脱光了丢街上吧
@dudo , 怎么木有人祈求春哥的保佑?! :exclaim:
又是JQ阿。不懂。~~ :exclaim:
@柳城 , 蛋定,perl高手 ~
:rolleyes: 小邪的教程真是生动有趣~~~
@MOPVHS , 呵呵,谢谢喔,顿时接收到了好大的动力鸟 ~ :redface:
一直感觉AJAX是很有用的东西,但个人程序能力不行,不能有所认识!但还是知道怎么回事了!!
@零才 , 嘿嘿,很高兴对你有帮助 ~ :biggrin:
其实还真不懂,每次都只能过来打酱油。。。。
@球犯 , 嘿嘿,所以提供了投票给大家玩喔 ~

我是来投票的。不过话说回来这个功能还真不错
@小羿 , 嘎嘎,今天收到好多票 ~
还有很大的修改空间,我教教你吧
@Jerry Chen , 恩恩,如果要出正式投票程序就向你请教咯 ~
现在是演示jq效果喔 ~
我把第五项刷了几票,哈哈
@insect , 额滴神,难道命中注定小邪要被脱?!
没有预览啊
@先看看 , 。。。囧 请仔细阅读 文中有两处演示地址 ~
http://tool.evlos.org/demo/ajax_005
http://tool.evlos.org/demo/ajax_006
#4。。支持#4。据说你回国了?
@超人 , 恩,回国才有时间弄博客额 ~
嗯 自己在另一个站上实现了一下 用的jquery的ajax
@丕子 , 呵呵,有了jq发现js太简单鸟 ~
我投4,5,6
@FORECE , :exclaim: ~~
小邪,你以高票通过,拉街上去脱光。
@SErHo , ╮( ̄▽ ̄")╭,小邪表示蛋疼 ·
@Kaisir.Wang , 额,感觉不大需要留言板 ~
有啥事儿写到新文章的留言里面去就好咯 ~ :redface:
呵呵 在国外的啊 你 呵呵 过来看看新朋友 :rolleyes:
@su , 呵呵,你好,握手 ~ :biggrin:
过来看看你 帮你踩踩
@私爱 , 呵呵,荒淫来玩 ~
谁能用的上?
@卢松松 , 如果会用的话,所有人都用得上的 ~
现在AJAX是不可或缺的喔 ~ :redface:
以后多学点这方面的东西了,换个主题都弄不好,╮(╯▽╰)╭
@晴天 , 呵呵,蛋定,如果有兴趣就努力折腾一下 ~
你最后会发现,这些其实蛮简单的 ~
这个用的人不多吧
@zzzhu , ╮( ̄▽ ̄")╭,都不会用 ~
偷偷告诉你,我只刷新了几次,都是投的第一个,哈哈~
@小松 ,
... ╮( ̄▽ ̄")╭ ~
呃。。不太懂
@Ebo , 呵呵,要蛋定 ~ :rolleyes:
@礼物114 , 额滴个神 ~ 春哥保佑我 ~ :exclaim: :exclaim:
我切了你20多次JJ……
@阿修 , (PД`q。)·。'゜冰天雪地掩面泪奔 ……
~
錯過了投票OTL"
(喂
我投4,5好了
@小闇 ,
。。哇,有MM要切小邪的小弟弟 ~
瞬间一溜寒气就从丹田冒上来鸟 ~ ╮( ̄▽ ̄)╭ ·
小邪,您真狠啊。
@蓝冰 , ╮( ̄▽ ̄)╭,闲得蛋疼了 ~
投6不解释~~
@dqaria , 啊喔,额滴神 ~
