Bonjour,
Je suis en train de créer un compte à rebours sur un jeu de lettres PHP (type boggle, avec des anagrammes) dont la page est constamment rafraîchie.
J'ai créé une fonction js pour comparer(*) le timestamp actuel (questionné en js) au timestamp de fin de jeu (défini dans une session php)(**) à chaque fois que le joueur presse une lettre dans un input(***)
Mais cette fonction ne déclenche pas...
(***)
(**) -- début du fichier play.php
(*) -- fin du fichier play.php
Avez-vous une idée de la raison de la raison qui explique pourquoi ma fonction js ne déclenche pas (je suppose que la passation d'une valeur PHP à JS fonctionne mal ?) et d'une solution pour arriver à mes fins, svp ?
Merci d'avance pour votre aide !
Modifié par Reka (10 Jan 2019 - 23:05)
Je suis en train de créer un compte à rebours sur un jeu de lettres PHP (type boggle, avec des anagrammes) dont la page est constamment rafraîchie.
J'ai créé une fonction js pour comparer(*) le timestamp actuel (questionné en js) au timestamp de fin de jeu (défini dans une session php)(**) à chaque fois que le joueur presse une lettre dans un input(***)
Mais cette fonction ne déclenche pas...
(***)
<form action="play.php" method="post">
<input type="text" name="mot" id="mot" placeholder="mot" maxlength="16" autofocus onkeypress="isItTheEnd();">
<input type="submit" name="ok" value="ok" id='envoimot'>
</form>
(**) -- début du fichier play.php
// nombre de coups
$_SESSION['tentatives'][] = '1';
$tentatives = count($_SESSION['tentatives']);
// dès le premier coup, inscrire quand commence le jeu (timestamp du 1er coup) dans une session pour pouvoir (js) bloquer le jeu après 2mn (timestamp+120)
if($tentatives == '1') {
$now = strtotime("now");
$_SESSION['timestamp'] = [
'debut' => $now,
'fin' => $now+120,
];
}
(*) -- fin du fichier play.php
<script>
function isItTheEnd() {
// définir le timestamp actuel
var timestamp = Math.round(new Date().getTime() / 1000);
// réagir avec une popup si le timestamp actuel est plus grand que le timestamp de fin qui a été établi et stocké en session
if(timestamp > <?php echo $_SESSION['timestamp']['fin']; ?>) {
alert('stop');
}
}
</script>
Avez-vous une idée de la raison de la raison qui explique pourquoi ma fonction js ne déclenche pas (je suppose que la passation d'une valeur PHP à JS fonctionne mal ?) et d'une solution pour arriver à mes fins, svp ?
Merci d'avance pour votre aide !
Modifié par Reka (10 Jan 2019 - 23:05)