ENVOI DE FORMULAIRE AVEC DE L'AJAX

stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 - 4 mars 2007 à 16:55
orugari Messages postés 1 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 5 avril 2011 - 5 avril 2011 à 15:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41732-envoi-de-formulaire-avec-de-l-ajax

orugari Messages postés 1 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 5 avril 2011
5 avril 2011 à 15:19
Bonjour,
Je l'ai integre a mon site mais... cela ne donne rien...
En reprenant legerement le code, l'action reste sur "en cours..." et ne fait rien.

//submit
function SendForm(){
$('BTsubmit').disabled='disabled';
$('BTsubmit').value='en cours ...';
$('message').disabled='disabled';
$('email').disabled='disabled';
new Ajax.Request('envoie_message.php',{
method: 'post',
asynchronous: true,
contentType: 'application/x-www-form-urlencoded',
encoding: 'UTF-8',
parameters: { pseudo : $F('pseudo'), time: $F('time'), message: $F('message')},
onSuccess: function(){MailOK();},
onFailure: function(){}
});
function MailOK(){
$('BTsubmit').style.visibility = 'hidden';
$('BTsubmit').style.display = 'none';
$('textOK').style.visibility = 'visible';
$('textOK').style.display = 'block';
}
}

et envoie_message.php

<?
$message = $HTTP_POST_VARS["message"];
$pseudo = $HTTP_POST_VARS["pseudo"];
$time = $HTTP_POST_VARS["time"];

if($message !="")
{

//traitement du message
etc...

Je ne comprends absolument rien...
jamelisi Messages postés 2 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 3 février 2009
3 févr. 2009 à 15:59
j'ai un problème :ce message d'erreur est affiché:

$ is not defined
[Break on this error] $('BTsubmit').value='en cours ...';
COMMENT JE FAIT?
zabiru Messages postés 1 Date d'inscription jeudi 9 août 2007 Statut Membre Dernière intervention 8 janvier 2008
8 janv. 2008 à 20:13
Merci beaucoup pour cette source! C'est exactement ce qu'il me fallait.
cs_Klephte Messages postés 22 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 4 janvier 2022
10 sept. 2007 à 13:12
Comme tu le signales fort bien, le header de la requête doit obligatoirement contenir multipart/form-data, ne l'ayant pas trouvé dans le code source de Prototype.js, je ne peux qu'en déduire que l'upload de données binaires n'est pas implémenté dans Prototype de plus s'agissant de l'accès par des scripts JS à des ressources locales, la faisabilité pour des raisons de sécurité me semble fort incertaine , bien que cet exemple http://www.captain.at/ajax-file-upload.php semble prouver le contraire.
Proph_be Messages postés 3 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 10 septembre 2007
10 sept. 2007 à 11:53
Sauriez vous égallement comment faire pour envoyer un formulaire contenant des fichiers (cad ayant un enctype 'multipart/form-data' ?
Proph_be Messages postés 3 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 10 septembre 2007
6 sept. 2007 à 11:09
Ok, merci bien pour l'info et pour ce script qui est vraiment sympa pour comprendre :)
cs_Klephte Messages postés 22 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 4 janvier 2022
5 sept. 2007 à 22:20
Salut,
D'après la doc, l'événement onComplete est appelé sans condition à la fin de l'exécution d'Ajax.Request alors que le traitement onSuccess est quant à lui appelé uniquement en cas de réussite. Mon but étant de confirmer de bon envoi du message, la méthode la mieux adaptée est bien le traitement de l'événement onSuccess.
Proph_be Messages postés 3 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 10 septembre 2007
5 sept. 2007 à 22:05
Salut, ne serait-ce pas mieux d'utiliser l'option 'onComplete' plutot que onSuccess ?
gregooo1212 Messages postés 3 Date d'inscription samedi 13 mai 2006 Statut Membre Dernière intervention 20 avril 2007
20 avril 2007 à 12:53
une petite question...

j'ai rajouté à ce formulaire un champs "nom".
J'aimerais que le contenu de ce champs soit visible dans le corps du mail de destinataire.

Il y a-t-il une astuce?
gregooo1212 Messages postés 3 Date d'inscription samedi 13 mai 2006 Statut Membre Dernière intervention 20 avril 2007
19 avril 2007 à 15:34
HEU... OUps!

oui...heu, en fait, je n'avais pas séparé le php de l'html :)

promis, j'me donne une baffe!
gregooo1212 Messages postés 3 Date d'inscription samedi 13 mai 2006 Statut Membre Dernière intervention 20 avril 2007
19 avril 2007 à 11:39
Merci pour ce 'ifique formulaire!

Seuleument, ça ne marche pas tiptop chez moi...
-apres le clic sur le bouton "Envoyer", les champs se grisent... mais restent bloqués dans cet état.
-le message de confirmation n'apparait pas
-le message est bien envoyé à mon adresse mail mais sans aucun contenu!

Si quelqu'un à une explication, j'en serais ravis!
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 17:48
Aussi, plutot que de faire et visibility="hidden" et display="none", fais-en un seul des deux. (je te conseil display="none")
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
9 avril 2007 à 17:46
Pour une description de l'erreur en plus de son code :
'ERROR '+response.status+' : '+response.statusText';
toutphp Messages postés 107 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 5 mai 2010
6 mars 2007 à 21:55
Klephte,

merci de ton accord, je dois bien t'avouer que je me doutais de ta réponse !
C'est pour ça que j'avais antcipé ... :D

Si tu as d'autres exemple, n'hésite pas à me les envoyer !
cs_Klephte Messages postés 22 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 4 janvier 2022
6 mars 2007 à 20:13
Dear TOUTPHP,
Je te remercie de prendre la précaution de me demander mon accord sur la réutilisation de cette exemple, je te répondrai donc que je serais très content qu'il soit réutilisé à titre d'exemple et surtout sur ton site.
toutphp Messages postés 107 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 5 mai 2010
5 mars 2007 à 15:31
Ce qui est quand même bizarre c'est que tu n'ai pas eu d'alerte javascript avec une erreur PHP, Genre :

error line xx : missing ')' ......
toutphp Messages postés 107 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 5 mai 2010
5 mars 2007 à 15:26
Effectivement ! bien joué !
cs_fidjay Messages postés 21 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 16 mars 2009
5 mars 2007 à 15:25
Sa marche nikel, enfaite une parenthese de trop se balade sur la ligne de la page FormContact.php
$HTTP_POST_VARS["message"])
cs_fidjay Messages postés 21 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 16 mars 2009
5 mars 2007 à 15:09
merci de ton aide, Ma fonction mail est bien activé, avec onFailure: function(data){alert(data);}; aucun message et aucune action, le bouton ne se met plus en attente et pas de message de validation...
toutphp Messages postés 107 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 5 mai 2010
5 mars 2007 à 14:50
Ce que je te propose :

essaye de voir ta configuration de ton php. Il faut qu'il soit paramétré correctement pour que la fonction mail existe.
Sinon sur la ligne onFailure :

onFailure: function(data){alert(data);};

au moins tu aurais le droit de voir les erreurs PHP, si il y en a.
cs_fidjay Messages postés 21 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 16 mars 2009
5 mars 2007 à 14:45
moi je comprend pas je reçoi aucun mail, j'ai bien le message de validation mais apres essaye sur plusieur boite rien arrive...
toutphp Messages postés 107 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 5 mai 2010
5 mars 2007 à 08:32
Salut,

c'est qu'une présentation clair d'un exemple est plus agréable.
Merci à toi de nous le faire partager.
De plus, j'aimerai reprendre ton exemple sur mon site : est-ce possible ?
Je te demande car j'ai traduit la documentation de prototype en français ( à 80%) et je recherche des exemples simple à mettre en place pour concrétiser une documentation quelque peu abstraite.

Avant de donner ton (dés?)accord, va jeter un oeil sur mon site :

http://wiki.sur-la-toile.fr/doku.php?id=prototype
stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
4 mars 2007 à 16:55
Super, les sources sur envoyer une requête en ajax existaient déja, mais la c'est un code simplifié pour juste envoyer un formulaire. 10/10
Rejoignez-nous