【问题标题】:UP or DOWN Voting in Real-Time jQuery Ajax PHP实时 jQuery Ajax PHP 中的 UP 或 DOWN 投票
【发布时间】:2023-03-22 20:34:01
【问题描述】:

好的,下面是对我正在做的事情的简要说明: 我有一个网站,人们可以在其中投票赞成或反对“冠军”。这些冠军以 100 点生命值开始。如果您要对特定英雄进行 UP 投票,他们的生命值现在将是 101。DOWN 投票将是 99。

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

我现在遇到的困难是,首先,我不擅长 ajax/js。但是,主要问题是当有人点击投票时,我需要一种方法从数据库中获取实时数据,然后将其放入 jquery/ajax 查询中,然后实时输出真实数据(或者至少我觉得这是应该做的)。

还有第二部分...人们可以每小时投票 3 次。页面顶部有一条通知,显示他们还剩多少票,“您还有 3 个操作剩余”。这又是,按原样工作正常,但我想需要用 ajax 进行修复才能实现实时。

我希望我解释得足够好。如果没有,请告诉我! 任何帮助将不胜感激!

代码:

$("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>');
            }
        });
    });
});

【问题讨论】:

  • 到目前为止你做了什么?这些都不是非常复杂。
  • 6 个问题,0 个被接受?继续前进。
  • 不知道我需要接受吗?实际上甚至没有看到接受%,直到您刚刚提到它大声笑。现在,@ceejayoz - 如果你愿意,我可以通过消息链接你的实时网站,这样你就可以看到它是什么以及已经完成(不确定我是否真的可以在这里链接网站)。
  • 实际上您可以链接到网站 - 只需粘贴 URL。
  • 其实第 5 季刚刚结束,所以没有投票自动取款机。我现在唯一能做的就是把你送到测试站点,这需要私信哈哈。有需要的可以告诉我!

标签: php jquery ajax phpmyadmin real-time


【解决方案1】:

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

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

然后,返回这个数组:

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

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

一个相当简单的 ajax 实现。

希望这会有所帮助!


编辑:AJAX 学习链接

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

【讨论】:

  • 感谢您的回复!我以前从未使用过 JSON(甚至不确定它的目的是什么,哈哈)。你有什么地方推荐我去快速复习一下吗? PS:谢谢你的粗体声明,我去接受了一些答案:)
  • 谢谢,我取消了对那个的引用(我不想让你难堪)。我用一些链接更新了帖子。
  • 太棒了,有机会我会浏览这些链接的!希望我能快速轻松地学习它,哈哈。
  • 好!如果这回答了您的问题,请记得检查并投票。
  • 您可以发送多个查询。例如在 $.getJSON 函数中,有一个 complete 匿名函数,您可以在初始调用成功时传入该函数。然后您可以调用您的刷新统计功能。或者使用一些逻辑将刷新统计功能包装在计时器中,以确保不会触发多个调用。这有帮助吗?
猜你喜欢
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
  • 2015-10-07
  • 1970-01-01
  • 2017-05-07
相关资源
最近更新 更多