Automatisation bouton fin compte à rebours

Résolu/Fermé
Signaler
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
-
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
-
Bonjour,

Je suis entrain de créer un quiz sur mon site, dont chaques question à une limite de temps grace à un compte à rebours en javascript. Donc au lieu d'avoir un bouton "entrée" sous ma question et mes réponses qui permet à l'utilisateur de valider sa réponse, je voudrais que ceci ce fasse automatiquement à la fin du compte à rebours, l'utilisateur n'aura donc plus besoin de cliquer sur "entrée", mais je ne sais pas du tout comment m'y prendre.

Voici le code du compte à rebours :

<script language='javascript'>
nombreDeSeconde=21;
document.getElementById('idIciSecondes').innerHTML=nombreDeSeconde;

function compteAreboursSec()
{
nombreDeSeconde=nombreDeSeconde-1;
document.getElementById('idIciSecondes').innerHTML=nombreDeSeconde;

if(nombreDeSeconde>0)
{setTimeout("compteAreboursSec()",1000);}
}
</script>


Voici le code de ma question :

<!-- Affichage du formulaire -->
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">

<?php // Php pour première question et réponses au hasard.
try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=newquiz', 'root', '', $pdo_options);
$reponse = $bdd->query("SELECT categorie, question, reponse_j, reponse_f FROM categories WHERE categorie like '%_1' ORDER BY RAND( )LIMIT 1");
$res="";

while ($donnees = $reponse->fetch()){ //affichage question 1
$res = '<div id="question1" style="display:none"><p id="temps_restant">Temps restant<p/>'
. '<div id="empty"><div id="d2"></div><b><span id="idIciSecondes"></span></b></div>'
. '<p id="este">Question 1:</p><p id="quest">' .$donnees['question']. '</p>'
. '<p><label id="reponse_q_1"><input type="radio" name="check" value="'.$donnees['reponse_j'].'">'.$donnees['reponse_j'].'</label>'
. ' <label id="reponse_q_1"><input type="radio" name="check" value="'.$donnees['reponse_f'].'">'.$donnees['reponse_f'].'</label></p>'
. '<p><input type="submit" value="Entrée" /><p></div>';
}
$reponse->closeCursor();
} catch(Exception $e) {
die('Erreur : '.$e->getMessage());
}

?>

Si vous avez une idée n'hésitez pas :)

Cordialement

1 réponse

Messages postés
260
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
20 août 2016
11
Moi j'appelerai ta fonction compteAreboursSec() à l'ouverture de ta page, puis je ferais un getElementById sur ton input submit (sans oublier de lui donner un nom !
Puis je relancerai la fonction fonction compteAreboursSec() à la validation de ton form.
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
Merci d'avoir répondu kisscool387
Ma fonction compteAreboursSec() est déja au début de ma page. Je n'ai pas très bien compris ce qu'i lfaut que je fasse après :s
Mais enfet si l'utilisateur réponds bien à la question, la 2eme question apparait avec un nouveau compte à rebours, ça donne ceci :

//Affichage des erreurs question 1
if (!isset($_POST['check'])){
echo '<p><span class="erreur">Vous devez choisir un champ !!</span></p>';
}
else{
$sql = "SELECT reponse_j FROM categories WHERE categorie like '%_1' AND reponse_j='".$_POST['check']."'";
$req = $bdd->query($sql);
$req->setFetchMode(PDO::FETCH_OBJ);
}
//Si le membre donne une bonne réponse à la première question :
if ($ligne = $req->fetch()) {

try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=newquiz', 'root', '', $pdo_options);
$reponse = $bdd->query("SELECT categorie, question, reponse_j, reponse_f FROM categories WHERE categorie like '%_2' ORDER BY RAND( )LIMIT 1");

while ($donnees = $reponse->fetch()){ //affichage question 2
$res = '<div id="question1" style="display:none"><p id="temps_restant">Temps restant<p/>'
. '<div id="empty"><div id="d2"></div><span id="idIciSecondes"></span></div>'
. '<p id="este">Question 2:</p><p id="quest">' .$donnees['question']. '</p>'
. '<p><label id="reponse_q_1"><input type="radio" name="check" value="'.$donnees['reponse_j'].'">'.$donnees['reponse_j'].'</label>'
. ' <label id="reponse_q_1"><input type="radio" name="check" value="'.$donnees['reponse_f'].'">'.$donnees['reponse_f'].'</label></p>'
. '<p><input type="submit" value="Entrée" /><p></div>';
}

$reponse->closeCursor();
} catch(Exception $e) {
die('Erreur : '.$e->getMessage());
}
}
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
WTF avec l'affichage??
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
J'ai essayé de rajouter ça à mon compte à rebours mais ça ne marche toujours pas :
else if(nombreDeSeconde=0)
{
document.getElementById('formulaire_questions').submit();
}
Messages postés
169
Date d'inscription
mardi 6 mars 2012
Statut
Membre
Dernière intervention
23 mai 2012
2
C'est bon j'ai trouvé. C'était bien la solution précédente, j'avais juste mit name au lieu d'id pour le nom du formulaire.
En ce qui concerne le bouton entré, j'ai juste mis un style="display:none" pour le faire disparaitre.