Decompte php/javascript

Fermé
Plopy21 Messages postés 3 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 22 janvier 2009 - 21 janv. 2009 à 20:03
 guytou - 15 mai 2009 à 17:04
Bonjour,
J'aimerai bien faire un compte à rebours en php/javascript pour gérer les attaques dans un jeu en ligne.

Pour la partie php ça va par contre pour le javascript c'est une autre histoire.
Tout va bien tant qu'il n'y a qu'une attaque mais le problème c'est que quand il y a 2 attaque j'aimerai bien que sa affiche 2 compte à rebours (un pour chaque attaque).

<script language="JavaScript">
               
function t()
{
	var compteur=document.getElementById('compteur');
	s=duree;
	m=0;h=0;
	if(s<0)
	{
		compteur.innerHTML="<br />"
	}
	else
	{
		if(s>59)
		{
			m=Math.floor(s/60);
			s=s-m*60
		}
		if(m>59)
		{
			h=Math.floor(m/60);
			m=m-h*60
		}
		if(s<10)
		{
			s="0"+s
		}
		if(m<10)
		{
			m="0"+m
		}
		compteur.innerHTML=h+":"+m+":"+s+"<br />"
	}
	duree=duree-1;
	window.setTimeout("t();",999);
}
			
</script>
				
	<div id="compteur"></div>
	<?php
	IF($pseudo == $recherche_bdd_combat['pseudo_attaquant'])
	{ 
		?><a href="enter.php">rappeler les hommes</a><?php
	}
	$timestamp = time();
	$timestamp_final = $recherche_bdd_combat['timestamp_final'];
	$temps = $timestamp_final - $timestamp;
	?>
<script language="JavaScript">
	duree="<?php echo $temps ?>";
	t();
</script>
A voir également:

4 réponses

Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
21 janv. 2009 à 20:08
ton problème est lié au fait que tu veux utiliser du javascript et du php en même temps, mais pas de la bonne façon. N'oublis pas que javascript s'execute côté client, et php, côté serveur uniquement.

ceci est donc invalide, et ne peut pas fonctionner:
<script language="JavaScript">
	duree="<?php echo $temps ?>";
	t();
</script>


utilise des fonctions de temps de javascript, ou alors renseigne toi sur les technologies AJAX, ça devrait t'aider^^
0
Plopy21 Messages postés 3 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 22 janvier 2009
21 janv. 2009 à 20:41
je viens d'essayer en mettant ça mais ça ne marche pas

var date_final = <?php echo $timestamp_final ?>;
var date = <?php echo $timestamp ?>;
var temps = date_final - date;

duree=temps;
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
21 janv. 2009 à 20:43
ça ne risque pas, cf plus haut.
0
Plopy21 Messages postés 3 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 22 janvier 2009
22 janv. 2009 à 15:25
Je vois bien comment récupérer la date (sous forme de timestamp) en javascript mais je ne vois pas comment faire pour avoir la date_final sans faire comme j'ai fait.

J'ai regarder avec Ajax mais d'après ce que j'ai compris il faut transmettre les variable par POST ou GET mais là ma variable vient directement de ma bdd.

Ne saurais tu pas comment faire pour que ca fonctionne ?
0
je crois que ça devrait aller comme suit :
<script language="JavaScript">

function t()
{
var compteur=document.getElementById('compteur');
s=duree;
m=0;h=0;
if(s<0)
{
compteur.innerHTML="<br />"
}
else
{
if(s>59)
{
m=Math.floor(s/60);
s=s-m*60
}
if(m>59)
{
h=Math.floor(m/60);
m=m-h*60
}
if(s<10)
{
s="0"+s
}
if(m<10)
{
m="0"+m
}
compteur.innerHTML=h+":"+m+":"+s+"<br />"
}
duree=duree-1;
window.setTimeout("t();",999);
}

</script>

<div id="compteur"></div>
<?php
IF($pseudo == $recherche_bdd_combat['pseudo_attaquant'])
{
?><a href="enter.php">rappeler les hommes</a><?php
}
$timestamp = time();
$timestamp_final = $recherche_bdd_combat['timestamp_final'];
$temps = $timestamp_final - $timestamp;
?>
<?php echo '<script language="JavaScript">
duree="'.$temps.'";
t();
</script>'; ?>
0