Automatisation bouton fin compte à rebours

Résolu/Fermé
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 2 avril 2012 à 17:48
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 3 avril 2012 à 14:11
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 jeudi 22 novembre 2007 Statut Membre Dernière intervention 20 août 2016 11
2 avril 2012 à 23:38
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 mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
3 avril 2012 à 00:30
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 mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
3 avril 2012 à 00:31
WTF avec l'affichage??
0
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
3 avril 2012 à 01:06
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 mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
3 avril 2012 à 14:11
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