Validation d'un formulaire suite à un dépassement de temps

Eléphanteau du PHP | 33 Messages

03 sept. 2008, 19:26

Bonjour,

J'ai un qcm en php, nickel, ca marche.

Je voudrait ajouter une contraite de temps et valider le formulaire du qcm en cas de dépassement du temps et faire une redirection en conséquence.

Quelqu'un aurait une piste.

Merci pour vos réponses

:D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 sept. 2008, 19:52

Bonjour,

Regarde du côté de javascript et de setTimeout()
Quand tout le reste a échoué, lisez le mode d'emploi...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

03 sept. 2008, 20:38

La balise :

Code : Tout sélectionner

<meta http-equiv="refresh" content="1;url=page_suivante.php">
va rediriger le navigateur vers l'url : page_suivante.php dans 1 seconde.

Mais si dans ton cas il faut provoquer un submit après un temps d'attente il faut à ce moment là utiliser javascript pour programmer un Timer qui déclenche un submit du formulaire après un temps d'attente. En voici une ébauche :

Code : Tout sélectionner

<script type="text/javascript"> var h=0, mn=0, s=0; //chrono affichable var temps = 0; //compteur de temps en secondes var timeout = 60*1; //1 mn d'attente en secondes function Timer() { //compter le temps passé en secondes temps++; //test d'arrêt if ( temps >= timeout ) { //envoi du formulaire vers une autre page form1.submit(); return; } //afficher le chrono s++; if (s>=60) { s=0; mn++;} if (mn>=60) {mn=0; h++;} if (h>=24) {h=0;} //format : 00:00:00 if (h<=9) h = "0" + parseInt(h); if (mn<=9) mn = "0" + parseInt(mn); if (s<=9) s = "0" + parseInt(s); document.getElementById("chrono").innerHTML = h + ":" + mn + ":" + s; setTimeout("Timer()",1000); //boucler le Timer toutes les secondes } </script> <body onload="Timer()"> <div id="chrono">00:00:00</div> <form name="form1" method="get" action="page_suivante.php"> <input name="var1" value="val1" /> <input type="submit" name="envoyer" value="Envoyer" /> </form> </form>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène