2012-01-04 123 views
2

好的,这里是我正在做的事情的快速解释: 我有一个网站,人们可以向UP或DOWN投票给一个“冠军”。这些冠军从100健康开始。如果你想为特定的冠军投票,他们的健康现在是101. DOWN投票将是99.向上或向下投票实时jQuery Ajax PHP

这个网站已经启动并且已经运行了5个季节(现在有超过1200个玩家)。所以有很多投票立刻进行。现在一切正常。但是,对于下个赛季,我将实现jquery/ajax进行“实时”投票(因此每次投票时不需要刷新页面)。

我现在正面临着这样的斗争,首先,我对ajax/js不太了解。然而,主要问题是当有人点击投票时,我需要一种方法来从数据库中获取实时数据,然后将其扔入jquery/ajax查询中,然后实时输出实际数据(或者至少是I感觉这是应该做的)。

还有第二部分......人们可以每小时投3次。页面顶部有一个通知,显示他们剩下多少票,“您剩下3个动作。”这又是一样,工作得很好,但我想可能需要与ajax一起实时解决。

我希望我解释得很好。如果没有,请让我知道! 任何帮助将不胜感激!

CODE:

$("a.vote-heal").click(function(){ 
    var votes; 
    var champ; 
    var health; 
    champ = $(this).attr('id'); 

    votes = $("#votesLeft").text(); 
    votes--; 

    //the main ajax request 
    $.getJSON("/load-champ.php?champ="+champ, function(data) { 
     $.each(data, function(i,data) { 
      health = data.health; 
      health++; 
     }); 
     $.ajax({ 
      type: "POST", 
      url: "/votes.php", 
      data: "champ="+champ+"&action=heal", 
      success: function(msg) { 
       $('#'+champ+' .health-inner').html(health); 
       $('#header .vote-remain').html('You have <strong><span id="votesLeft">'+votes+'</span> Actions</strong> remaining'); 
       $('#'+champ+' .voting').html('<a id='+champ+'" class="button vote-hurt" href="javascript:;">Hurt '+champ+'</a><div class="button vote-heal action-tooltip">Heal '+champ+'</div>'); 
      } 
     }); 
    }); 
}); 
+0

你有什么迄今所做?这些都不是非常复杂。 – ceejayoz 2012-01-04 20:08:38

+2

6个问题,0个问题已被接受?移动。 – 2012-01-04 20:10:12

+0

不知道我需要接受吗?其实甚至没有看到接受%,直到你刚才提到它大声笑。现在,@ceejayoz - 如果你想我可以通过消息链接到你的现场,所以你可以看到它是什么和已经完成(不知道我是否可以在这里实际链接网站)。 – Nate 2012-01-04 20:35:53

回答

5

所有的这是使用JSON刚刚返回数据库查询。也许在后端有两个动作 - 投票和刷新。

在投票方法中,首先检查查看选民的当前计数。如果还有选票,冠军的分数会上升或下降。

然后,返回此阵:

  1. 列表项
  2. 冠军票
  3. 投票离开
  4. 错误(如果存在)

在刷新方法(这将轮询后端服务器每x秒或几分钟)返回当前投票的数量。

ajax的一个相当简单的实现。

希望这会有所帮助!


编辑:AJAX学习链接

使用jQuery,它是超级,超级简单。具体方法如下:

+0

谢谢你的回应!我从来没有使用JSON(甚至不知道它的目的是什么atm大声笑)。你有什么地方可以推荐我去快速回顾一下吗? PS:感谢大胆的声明,我去了,并接受了一些答案:) – Nate 2012-01-04 20:42:56

+0

谢谢,我摘下了这个参考(我不想让你难堪)。我用几个链接更新了这篇文章。 – 2012-01-04 21:08:08

+0

太棒了,我会在有机会的时候通过这些链接!希望我可以快速轻松地学习它,哈哈。 – Nate 2012-01-04 23:48:30