[HTML] formulaire méthode "post"

Résolu
Passarinho44 Messages postés 977 Statut Contributeur -  
Passarinho44 Messages postés 977 Statut Contributeur -
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?
A voir également:

3 réponses

Passarinho44 Messages postés 977 Statut Contributeur 132
 
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
Alain_42 Messages postés 5413 Statut Membre 894
 
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=.....
0
Passarinho44 Messages postés 977 Statut Contributeur 132
 
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?
0
Alain_42 Messages postés 5413 Statut Membre 894 > Passarinho44 Messages postés 977 Statut Contributeur
 
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.
0
Passarinho44 Messages postés 977 Statut Contributeur 132
 
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?
0