SHIVANK KACKER
SHIVANK KACKER

Reputation: 11

Run ajax call in loop

okay so I am making a sort of an online multiplayer game, which requires 4 people to join a lobby. All is done, but I want the screen to constantly update who has joined the lobby. here is my function.

function lobbyquery(x){
$.ajax({
    url: 'inc/fn/lobbyload.php?lid='+ x,
    success: function(data) {
        var spl = data.split(",")
        var p1 = spl[0];
        var p2 = spl[1];
        var p3 = spl[2];
        var p4 = spl[3];
        var pl = spl[4];
        var pleft = 4 - pl;
        $('#game').html('Player1 : ' + p1 + '<br>Player2 : ' + p2 + '<br>Player3 : ' + p3 + '<br>Player4 : ' + p4 + '<br><Br>' + pleft + ' players left to join.')
      }
});

}

I cant find any solution, please help.

Upvotes: 0

Views: 54

Answers (2)

Brian Morris
Brian Morris

Reputation: 21

you can always set an interval, but a better way to do this would be to check for new players in lobbyload. And when you have a new player added you can execute your lobbyquery update function (or something like it) from your php script.

So logic would be something like:

new player joins > newPlayerToLobby.php

newPlayerToLobby.php calls javascript lobby update function

Upvotes: 0

Daniel Castro
Daniel Castro

Reputation: 11

Use a timer for update the DIV every # seconds/ms

setInterval(myMethod(x), 5000);

function myMethod(x)
{
  $.ajax({
    url: 'inc/fn/lobbyload.php?lid='+ x,
    success: function(data) {
      var spl = data.split(",")
      var p1 = spl[0];
      var p2 = spl[1];
      var p3 = spl[2];
      var p4 = spl[3];
      var pl = spl[4];
      var pleft = 4 - pl;
      $('#game').html('Player1 : ' + p1 + '<br>Player2 : ' + p2 + '<br>Player3 : ' + p3 + '<br>Player4 : ' + p4 + '<br><Br>' + pleft + ' players left to join.')
    }
  }
}

Upvotes: 1

Related Questions