Envoyer un formulaire automatiquement aprés x secondes

mike025
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 12:50

Bonjour,

Voilà je ne connais casiment rien en javascript, mais j'aimerais que quelqu'un m'aide pour faire une fonction que quand un utilisateur appuie sur le bouton submit, ba que le formulaire soit envoyé aprés x secondes

merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 mars 2008, 13:08

Du côté des événement tu peux chercher du côté de onSubmit ou onClick selon le type de boutons.
Côté délai, regarde comment fonctionne la méthode setTimeout() de javascript :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

mike025
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 14:36

oki merci, je vais essayé mais je ni connais trop rien en javascript, merci d'avoir répondu, je vous dit si j'ai réussi ...

mike025
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 14:59

voilà ce que j'ai fais :

dans les en-tete j'ai mis sa :

Code : Tout sélectionner

<SCRIPT> function Attendre(Duree) { string="Affiche("+Duree+");"; a = setTimeout(string,Duree); } function Affiche(Duree) { alert(Duree/1000+" seconds se sont écoulées"); function CheckInput() { for(i=0; i<document.forms[0].elements.length; ++i) if(document.forms[0].elements[i].value == "") { alert("Tous les champs n'ont pas été remplis!"); document.forms[0].elements[i].focus(); return false; } return true; } } </SCRIPT> </head>
et dans le bouton submit, j'ai mis :

Code : Tout sélectionner

<input type="submit" value="Valider" onClick="Attendre(10000);">
Mais quand on clique sur envoyer, sa change rien, comme si j'avais rien mis, merci de m'aider

MIKE025
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 16:55

je rappelle que je ny connais rien en javascript ...

ViPHP
ViPHP | 3300 Messages

14 mars 2008, 18:36

tu déclares une fonction dans une fonction ce qui doit provoquer une erreur (à juste titre)

la déclaration de la fonction en elle même n'a aucune action il faut la voir comme la création d'un bloc de code relié à un nom (de fonction) et éventuellement à des arguments (de fonctions)

ainsi

function truc(machin) {

alert(machin);

}

ne fait rien.

mais

truc('bidule');

va effectivement afficher une boite de dialogue avec écrit dedans "bidule".

dans ton code il faut sortir la déclaration de la fonction CheckInput de celle de Affiche
Fait du php depuis que ca existe ou presque :)

mike205
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 22:20

ok merci je vais testé

mike025
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 22:22

edit : arf je sais pas trop comment faire, mais je te remercie deja d'avoir répondu, mais si tu pouvez m'aidez a sortir la déclaration de la fonction CheckInput de celle de Affiche s'il te plait ?

Invité
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 23:20

reEdfit : voilà ce que jai mis :

Code : Tout sélectionner

function Attendre(Duree) { a = setTimeout(string,Duree); } function CheckInput() { for(i=0; i<document.forms[0].elements.length; ++i) if(document.forms[0].elements[i].value == "") { alert("Tous les champs n'ont pas été remplis!"); document.forms[0].elements[i].focus(); return false; } return true; }

et :

Code : Tout sélectionner

<form method="POST" action="http://serveur.4.free.fr/ogame/robot/r0b0t.php" onSubmit="Attendre(10000)">

Invité
Invité n'ayant pas de compte PHPfrance

14 mars 2008, 23:21

mais sa fonctionne pas

ViPHP
ViPHP | 1996 Messages

15 mars 2008, 23:50

Pourquoi string dans

Code : Tout sélectionner

a = setTimeout(string,Duree);
et pas ?
a = setTimeout(CheckInput,Duree); 
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Invité
Invité n'ayant pas de compte PHPfrance

15 mars 2008, 23:56

ok merci je vais essayé

mike0025
Invité n'ayant pas de compte PHPfrance

16 mars 2008, 00:26

voila j'ai testé et sa fonctionne pas, si vous trouvez pourquoi ? merci de continué a m'aider .

Mike025
Invité n'ayant pas de compte PHPfrance

16 mars 2008, 00:40

enféte sa marche quand quand je fait validé, et que je fait précédent, la je réintérit sur la page du formulaire et sa l'envoie au bout de 10 secondes, donc j'ai un peu réussi, mais faudrait juste que sa le fasse quand on arrive sur la page normalement.

Voilà deja merci, j'ai bcp avancé grace a vous donc mon projet.
Je veux juste savoir comment faire pour que sa le fasse des qu'on clique sur submit et pas que quand on clique dessus sa l'envoie et aprés qu'il faut faire precedent et que la sa l'envoie au bout de 10 secondes, dsl si j'en demande trop

Merci d'avance

Invité
Invité n'ayant pas de compte PHPfrance

16 mars 2008, 00:48

c pas que sa marche, mais sa me met une alerte, "Tous les champs n'ont pas été remplis!"