Bonjour à tous, un grand merci à ceux qui oseront se pencher sur mon soucis, je vais essayer d'être le plus précis possible.
Je dispose d'un formulaire assez basique, prenant cette forme :
Jusque la, je pense que tout va
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <form action="index.php" method="post" name="saisirreponse" id="saisirreponse"> <input type="radio" name="reponse" value="a"> a <input type="radio" name="reponse" value="b"> b <input type="hidden" name="question" value=""> //rajouté en plus pour contourner le submit() <input type="submit" name="question" value="Continue">.
Dans cette même page, je place du php pour regarder si j'ai reçu quelque chose de mon formulaire.
Lorseque je clique sur mon bouton submit, tout fonctionne, la page se recharge, mon code php detecte qu'un formulaire a été saisie et il inscrit les réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <? if (isset($_POST['question'])) { if(isset($_POST['reponse'])) { //ajout des réponses dans la BDD } //affichage de la question suivante }?>
Mais la, je viens d'ajouter un timer. La personne doit répondre à la question dans un laps de temps donné. Ainsi, quand le timer est à 0, je voudrais que le formulaire soit envoyé automatiquement.
Bien, la première fois que j'ai lancé mon code, je revenais à la page d'accueil.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function cptreb(sec) { if(sec>0) { sec=sec-1; document.write="Il te reste : <br />"+sec+" secondes"; document.getElementById("cptreb").innerHTML =document.write; } if(sec==0) { document.write="Temps écoulé"; document.getElementById("cptreb").innerHTML =document.write; document.getElementById('saisirreponse').reponse.value=""; document.getElementById('saisirreponse').question.value="1"; alert('Too LATE !!!!'); document.getElementById('saisirreponse').submit(); } setTimeout("cptreb("+sec+")", 1000); }
La, n'y connaissant rien, j'ai tenté de comprendre, et je me suis dit que :
1. mon Code PHP detecte en fait si j'ai appuyé sur le bouton submit (qui doit prendre la valeur : value)
2. la fonction submit() ne doit pas "appuyer" sur ce bouton, elle l'ignore, et donc ca me foire tout xD
J'ai donc contourné en placant un champ hidden du même nom que mon submit et en modifiant sa valeur.
document.getElementById('saisirreponse').question.value="1";
C'est vraiment du bidouillage et ça doit pas être trop correct, mais en tout cas, ca fonctionne xD Il trouve un champ "question" et analyse bien tout le code qui en découle.
Je me pensais tiré d'affaire, mais nan.
Maintenant, le soucis, c'est que la personne n'ayant pas eu le temps de selectionner l'une ou l'autre radio, mon formulaire ne renvoyant aucune variable "reponse". J'ai bien tenté de faire :
document.getElementById('saisirreponse').reponse.value="";
Mais ça ne marche pas.
(Sans la variable "reponse", il n'ajoute rien dans la BDD et donc me raffiche la question précédante. On perd tout l'intéret du timer ^^)
Comment puis je faire pour donner une valeur au champ reponse, afin que le submit renvoi quelque chose ?
Partager