[HTML] formulaire méthode "post"

Résolu/Fermé
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 19 août 2008 à 17:31
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 - 20 août 2008 à 10:38
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 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 août 2008 à 10:38
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 août 2008 à 17:50
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 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
19 août 2008 à 17:56
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012
19 août 2008 à 18:09
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 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
20 août 2008 à 09:05
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