Automatisation bouton fin compte à rebours

Résolu
shoub-tcy Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -  
shoub-tcy Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -
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 260 Date d'inscription   Statut Membre Dernière intervention   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 169 Date d'inscription   Statut Membre Dernière intervention   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 169 Date d'inscription   Statut Membre Dernière intervention   2
 
WTF avec l'affichage??
0
shoub-tcy Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   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 169 Date d'inscription   Statut Membre Dernière intervention   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