实时jQuery Ajax PHP中的UP或DOWN投票

时间:2012-01-04 20:07:49

标签: php jquery ajax phpmyadmin real-time

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

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

我现在正在与之斗争的是,首先,我对ajax / js并不满意。然而,主要的问题是当有人点击投票时,我需要一种方法从数据库中获取LIVE数据,然后将其放入jquery / ajax查询,然后实时输出实际数据(或者至少我觉得这是应该做的事情。)

还有第二部分......允许人们每小时投票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>');
            }
        });
    });
});

1 个答案:

答案 0 :(得分:5)

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

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

然后,返回此数组:

  1. 列表项
  2. 冠军票
  3. 投票
  4. 错误(如果存在)
  5. 在刷新方法中(每隔x秒或几分钟轮询后端服务器)返回当前投票数。

    ajax的相当简单的实现。

    希望这有帮助!


    编辑:AJAX学习链接

    使用jQuery,它非常简单。方法如下: