Nouvelle page après validation d'un formulaire

Signaler
Messages postés
4
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
2 juin 2004
-
Messages postés
8
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
27 juillet 2004
-
Bonjour,

J'ai créé un formulaire (avec un mailto) qui contient un bonton de validation sur lequel je vérifie les différents champs sur l'évènement "onClick".
Lorsque tous les champs sont corrects et que l'utilisateur l'envoie, j'aimerais recharger la même page mais avec les champs vide et un message de remerciements...
J'ai essayé différentes choses mais rien ne fonctionne... Le formulaire est bien envoyé mais la page reste affichée avec toutes les informations...
Quelqu'un a t-il une solution?

Merci d'avance pour votre aide...

6 réponses

Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004

Il suffit de mettre ce que tu veux faire dans l'évènement onSubmit

Regarde là-dessus:
http://www.javascriptfr.com/article.aspx?Val=176

Dean
http://kickme.to/charloweb
Messages postés
4
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
2 juin 2004

Merci pour ta réponse mais cela ne fonctionne pas...
En fait au lieu de recharger la même page après la validation du formulaire, j'ai décidé de renvoyer à la page d'accueil (ce qui revient un peu près au même).
Donc, si je met le onSubmit sur le formulaire, il m'envoie effectivement à la page d'accueil mais n'envoie pas le formulaire.
Si je met le onSubmit sur le bouton envoyer, il envoie le formulaire mais ne va pas sur la page d'accueil...
????
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004

Essaie un truc comme ça:

<script language="JavaScript">
function sendandredirect() {
document.xxx.submit();
location.href = 'home.htm';
}
</script>

<form name="xxx" action="mailto:user@domain.com">

</form>

J'ai pas testé mais j'espère que ça t'avancera...

Dean
http://kickme.to/charloweb
Messages postés
4
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
2 juin 2004

Salut Dean,

Merci beaucoup pour ton aide mais... cela ne fonctionne pas.
Tu trouveras ci-joint un lien où se trouve mon formulaire...
Peut-être que quelque chose rentre en conflit...
http://membres.lycos.fr/ladypixel/formulaire.html

Merci encore
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004

Ce n'est pas dans mes habitudes d'analyser des sources complètes mais bon pour cette fois... :

- le nom du formulaire n'est pas bon ('/' non autorisé);
- je me suis trompé dans la fonction sendandredirect() : il faut remplacer document.monform.submit() par document.forms[0].submit();

Peut-être y a-t-il d'autres bugs... En tout cas j'ai légèrement modifié ton script et ça marche. Inspire-toi de cette source:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') {
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue (errors '');
}
function sendandredirect() {
document.forms[0].submit();
location.href = 'http://kickme.to/charloweb';
}

//-->
</script>
</head>

<form method="post" action="mailto:charloweb@hotmail.com" "name="deviscatalogue" enctype="text/plain">
<table width="760" border="0" cellspacing="0" cellpadding="0">
----,
<table width=\"700\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">
----

,
Demande de catalogue / devis

Merci de compléter ce formulaire pour
soumettre votre demande.

(*)
à compléter obligatoirement,

----

,
,
,

----

,
Société,

*,

----

,
Adresse,

*,

----

,
Code postal,

*,

----

,
Ville,

*,

----

,
Pays,
,

----

,
Activité,
,

----

,
Nom,

*,

----

,
Prénom,

*,

----

,
Fonction,

*,

----

,
Téléphone,

*,

----

,
Fax,

*,

----

,
E-mail,

*,

----

,
Votre demande,
<select name="Demande" size="1">
<option>Demande de devis</option>
<option>Catalogue</option>
<option>Autre</option>
</select>,

----

,
Comment nous avez-vous connus?,
<textarea name="Connu" cols="50" rows="5"></textarea>,

----

,
Effectif de votre société,
<select name="Effectif" size="1">
<option selected>Effectif de votre société</option>
<option>-10</option>
<option>10 à 50</option>
<option>50 à 100</option>
<option>+100</option>
</select>,

----

,
Laisser un message,
<textarea name="Message" cols="50" rows="5"></textarea>

</td>
</tr>
<tr>
<td>


</td>
</tr>
</table>


</form>
</td>
</tr>
</table>

</html>

</xmp></noscript><script language="javascript" src="http://ads.multimania.lycos.fr/ad/test_frame_size.js"></script>
<script language="javascript">
if (!AD_clientWindowSize()) {
document.write("<NOSC"+"RIPT>");
}
</script>

<script type="text/javascript" src="http://ads.multimania.lycos.fr/ad/ad.php?cat=noref&mkw=&CC=fr&ord=3e6f4ad3&adpref="></script>

Bon il reste un problème c'est qu'on ne sait pas si le formulaire a bien été envoyé (la redirection s'effectue quand même). Il doit exister des fonctions de tests en JS...

De plus, envoyer un formulaire avec mailto n'est pas conseillé. Il vaut mieux utiliser un script serveur qui s'occupe de l'envoi.

@+

Dean
http://kickme.to/charloweb
Messages postés
8
Date d'inscription
dimanche 4 mai 2003
Statut
Membre
Dernière intervention
27 juillet 2004

Pour moi tu as juste a mettre a la fin de ta page qui traite les données ce script o_O

<script>
document.href = "index.htm" ;
</script>