Reputation: 11
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
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
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