Email avec ajax

Résolu
Signaler
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008
-
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008
-
Bonjour,

J'avais déjà posté un message un peu similaire dont la réponse m'avait convaincu cependant le faite de ne pas trouver de solution à mon probleme suivant me perturbe et j'aurais donc besoin de vous.
Le probleme et que j'ai un formulaire de base que je voudrais envoyer en ajax dans lequel je compte faire des traitements php avant l'envoi. Voici mon code en espérant que quelqu'un pourra m'aider

function Contact(){
    $reponse = new xajaxResponse();
    $info = "
    votre message a bien été envoyé.
    ";
   
    //COMMENT FAIRE POUR RECUPERER LES DONNEES DU FORMULAIRE ??? pour les inserer dans $donnee
    $donnee = "données de mon formulaire";
    //la j'envoi mon email via la fonction email avec tout le toutime ca je sais faire mais j'avais la fleme de tous resaisir
    mail("moi@moi.fr", $donnee)
 
   
    $reponse->addAssign("contact", "innerHTML", $info);
    return $reponse->getXML();
}

<html>
<head></head>

   

            ----

            Nom :,
            ,
       
        ----

            Email :,
            ,
       
        ----

            Texte :,
            <textarea id="objet" rows="8" cols="" class="formulaire"></textarea>,
       
        ----

            &nbsp;,
            &nbsp;,
       
        ----

               &nbsp;,
                           

                    envoyer
               

           ,
       
   

</html>

Merci a ce qui pourront m'aider

11 réponses

Messages postés
192
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
10 août 2009

server.php

<?php
// CHECK E-MAIL
function checkmail($email) {
if (eregi("((^[a-z])(([a-z0-9_]+)|(([a-z0-9_]+)[\.]([a-z0-9_]+)))[@]([a-z0-9]+)[\-]?([a-z0-9]+)[\.](([a-z]+)[\.]?([a-z]+)))",$email))
   {
   list($Username, $Domain) = split("@",$email);
/* uniquement sous LINUX
   if(getmxrr($Domain, $MXHost))
   {
      return TRUE;
   }
   else
   {
*/  
      if (fsockopen($Domain, "25", $errno, $errstr, "2"))
      {
         return TRUE;
      }
      else {
         return FALSE;
      }
// }
}
else {
return FALSE;
}
}

if ($_GET['email']) {
echo checkmail($_GET['email']);
}
?>

client.html

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>AJAX</title>

<script type="text/javascript">
function writediv(texte,ID)
{
document.getElementById(ID).innerHTML = texte;
}

function checkmail(email)
{
if (email != '')
{
if (texte = file('http://localhost/mysql/projet_netbreeding/ajax/server.php?email='+email))
{
if (texte == 1) {
writediv('Email valide','mail');
}
else {
writediv('Email non valide','mail');
}
}
}

}

function file(fichier)
{
if (window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if (window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return (false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if (xhr_object.readyState == 4) return (xhr_object.responseText);
else return (false);
}
</script>

</head>

<form name="mainform" action="">


</form>

</html>

GRUNENBERGER Benoît

[www.UnrealNetwork.net www.UnrealNetwork.net]
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
salut:
Est-ce que tu veux récupérer toutes les valeurs des champs du formulaire ?
<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008

Salut,

Oui j'aimerais récuperer toutes les valeurs des champs pour y faire un traitement dessus avant de l'envoyer par email.
D'ailleurs c'est la dessus ou je bloque.
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
salut
je te donne un exemple et tu l'adapte a vos besoin
<script type= "text/javascript">
function info(nom,desc){
alert(nom+""+desc);
}
</script>
<form method="post" onsubmit ="info(this.nom.value,this.desc.value);return false" >

<textarea name="desc">test test test</textarea>

</form>
---
vu que tu utilises un textarea alors tu doit utiliser cette méthode

<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008

Slt,

Merci pour ta réponse mais c'est déjà la méthode que j'utilise justement parce que je ne trouve pas la solution en php.
Le truc c'est qu'avant de m'envoyer l'email, j'ai besoin de récuperer l'adresse email que la personne a saisie et apres récuperer le nom de domaine et d'utiliser la fonction php dyndnsrr(). Du coup avec le javascript je ne peu pas utiliser cette fonction.

Si tu as une solution je suis preneur, sinon tant pis je continurais a utiliser le js. Merci pour ton aide
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
avec cette méthode tu récuperes les valeurs,et à l'aide d'ajax tu vérifies ça avec php(en restant dans la meme page), alors c'est quoi le probleme ...

<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008

si j'en suis ton exemple tu recuperes tout dans ton js du coup dedans tu ne peux pas y include du php ?
Vu que j'ai un petit peu de mal a visualisé ce que tu veux me dire si t'avais un bout de code ca m'aiderait pas mal je pense
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
salut:
dans ton code la fonction Contact() doit avoir comme arguments ,tous les variables d'ou vous en avez besoin pour que tu les traites apres via php;
-alors n'oublier pas que le formulaire doit etre entre la balise <form></form>
-un submit(et non pas un lien avec une fonction js)+le onsubmit()
-l'ajax doit avoir comme argument la page php cible(celle qui traite les valeurs)

si rien ne marche je peux te donner un exemple complet(mais apres..)
bonne chance
 

<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008

Alors voila mon essai mais je vois pas plus comment faire car ca marche po :-(

<?
function Contact() {
    $reponse = new xajaxResponse();
    $info = "";

//je traite la chaine Mais je les ai pas encore récupere pfffff
    $nom = htmlentities($nom);
    $email = htmlentities($email);
    $objet = htmlentities($objet);
   
    $destinataire = "moi@moi.fr";  
   
    $entetes = "From:www.monsite.fr\n";
    $entetes .= "MIME-version: 1.0\n";
    $entetes .= "Content-type: text/html; charset= iso-8859-1\n";
    $titre = "Contact" ;

    $message = "nom: $nom
";
    $message = $message ."email : $email
";
    $message = $message ."Objet : $objet ";
   
    $info = mail($destinataire,$titre,$message, $entetes);
   
    $info = $info . "Message envoyé $test";

    $reponse->addAssign("contact", "innerHTML", $info);
    return $reponse->getXML();

}

require("xajax.inc.php");
$xajax = new xajax();
$xajax->registerFunction('Contact');
$xajax->processRequests();
?>
<html>
<head>
</head>

<form id="lecontact">
    ----

        Nom :,
        ,
   
    ----

        Email :,
        ,
   
    ----

        Texte :,
        <textarea id="objet" rows="8" cols="" class="formulaire"></textarea>,
   
    ----

        &nbsp;,
        &nbsp;,
   
    ----

        &nbsp;,
                   

               

                envoyer
           

       ,
   

</form>

</html>
Messages postés
385
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
21 août 2015
5
salut:

c'est pas un pub mais tu doit voir cette source
formulaire ajax

c'est une formulaire simple, d'ou la vérification passe par ajax.
une seule chose,j'utilise pas la beblio xajax..

<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on cherche la meilleure solution.
Messages postés
117
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 avril 2008

Merci pour ta réponse.