Automatisation bouton fin compte à rebours

Résolu
shoub-tcy Messages postés 173 Statut Membre -  
shoub-tcy Messages postés 173 Statut Membre -
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
A voir également:

1 réponse

kisscool387 Messages postés 269 Statut Membre 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.
0
shoub-tcy Messages postés 173 Statut Membre 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());
}
}
0
shoub-tcy Messages postés 173 Statut Membre 2
 
WTF avec l'affichage??
0
shoub-tcy Messages postés 173 Statut Membre 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();
}
0
shoub-tcy Messages postés 173 Statut Membre 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.
0