[HTML] formulaire méthode "post" [Résolu/Fermé]

Signaler
Messages postés
964
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
-
Messages postés
964
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
-
Bonjour à tous,

J'ai un problème assez étrange avec la métode "post" des formulaires.

Voici mon bout de formulaire :

<form method="post" action="./Insert_permanence(1).asp"> //Insert_permanence(1).asp est ma page actuelle
<font size="2" face="'New Time Roman', Arial"><strong><u> Commentaires : </u></strong></font><br>
<textarea rows="4" name="commentaire" cols="50"></textarea><br><br>

<input type="submit" value="ENVOYER MAIL" OnClick="Envoi_Mail();" /><br>

</form>
Lorsque je clique sur le bouton, la fonction Envoi_Mail(); s'execute bien mais je n'arrive pas à récupérer mon champs "commentaire" ou du moins pas du 1er coup...

Je m'explique : j'ai fait des tests et j'arrive à le récupérer la 2ème fois.
C'est à dire que si je vais sur la page une 1ère fois et que je clique sur le bouton, la valeur que je récupère (En ASP je la récupère grace à un : Request("commentaire") ) est vide.
Ca me renvoie bien sur ma page "Insert_permanence(1).asp" et le champ commentaire redevient bien vide (comme je veux).
Lorsque je reclique une deuxième fois (sans avoir entrer autre chose dans le champs commentaire), là je récupère la valeur que j'avais mise la 1ère fois...
Très étrange...

Je pense qu'il y a une erreur dans le code de mon formulaire mais je n'arrive pas à la trouver.. Pouvez-vous m'aider svp?

3 réponses

Messages postés
964
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
127
Bon, j'ai trouvé une alternative à ce problème ! =)

Lorsque je fais :

if Request("commentaire") <> "" then
%>
<script language="JScript">
<!--
// ****************** FONCTION D'ENVOI DE MAIL ******************
// ******** OUVRE OUTLOOK EN DEMANDANT UNE CONFIRMATION *******
function Envoi_Mail()
{
var theApp = new ActiveXObject("Outlook.Application");
var theNameSpace = theApp.GetNameSpace("MAPI").CurrentUser;

var theMailItem = theApp.CreateItem(0);
theMailItem.to = "adresse@mail.fr"; // Adresse du destinataire
theMailItem.Subject = "Permanence exploit du <%=DateFr%> ";
theMailItem.HTMLBody = "<%=Text_Mail%>";

theMailItem.send();
theNameSpace.Logoff;
}
Envoi_Mail();
-->
</script>
<% end if %>

Ca fonctionne bien!
(Et à ce moment là j'ai enlever le "OnClick" du bouton mais il relance quand même la page)

Par contre il faut que certains champs soient remplis (ici le commentaire)
Je ne sais pas pourquoi lorsque je lance la fonction depuis le bouton, il ne prend la valeur du champs qu'àprès...
Enfin comme ça, ça fonctionne !

Merci et @bientôt !
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56860 internautes nous ont dit merci ce mois-ci

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
Salut,

OnClick="Envoi_Mail() c'est un appel à une fonction Javascript pas au script asp

l'appel du script asp se fait par <fomr action=.....
Messages postés
964
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
127
Je le sais bien.
C'est bien une fonction JavaScript à laquelle je fais appel.
Mais cette même fonction JavaScript récupère des valeurs d'une fonction ASP.
Ce que je ne comprends pas c'est que ça fonctionnais sans problème avec juste cette textarea, j'ai voulu en rajouter mais ça ne fonctionnair pas, et maintenant même avec juste celle-ci, ça ne fonctionne toujours pas...

Une idée?
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873 >
Messages postés
964
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012

Mais cette même fonction JavaScript récupère des valeurs d'une fonction ASP.

comment ça ?

ASP s'execute côté serveur et Javascript sur le poste client c à d dans le navigateur en local.
Messages postés
964
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
127
Bonjour,

Je sais bien que JS c'est côté client et l'ASP côté serveur, c'est bien pour ça que je les utilise.
Mais ça fonctionne à part le problème que j'ai décrit plus haut.

Voici le morceau de ma fonction asp qui récupère la valeure du champs commentaire :

Function Text_Mail()
if Request("commentaire") <> "" then
Text_Mail = Text_Mail & "<br><br><u>Commentaires : </u><br>"
Text_Mail = Text_Mail & replace(Request("commentaire"),chr(13)&chr(10),"<br>")
end if
End Function

Et voici ma fonction javascript qui envoie le mail :

<script language="JScript">
<!--
// ****************** FONCTION D'ENVOI DE MAIL ******************
// ******** OUVRE OUTLOOK EN DEMANDANT UNE CONFIRMATION *******
function Envoi_Mail()
{
var theApp = new ActiveXObject("Outlook.Application");
var theNameSpace = theApp.GetNameSpace("MAPI").CurrentUser;

var theMailItem = theApp.CreateItem(0);
theMailItem.to = "adresse@mail.fr"; // Adresse du destinataire
theMailItem.Subject = "Permanence exploit de la semaine <%=numero_semaine%> ";
theMailItem.HTMLBody = "<%=Text_Mail%>";

theMailItem.send();
theNameSpace.Logoff;
}
-->
</script>

Mais cette partie ne posait pas problème avant (quand ça fonctionnait du premier coup ... ) et je n'ai modifié que la partie concernant le HTML.

Une idée?