1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
   |  
// Avec ce code, je récupère plusieurs champs (le titre du mail, son
// contenu, l'adresse de celui qui l'a envoyé et l'adresse de la pièce jointe)
function mail_ajax() {
  // Montrer le statut
  if(document.all) var information = document.all["status"];            //IE
  else             var information = document.getElementById("status"); //FF
  information.style.visibility = "visible";
 
  // Requête ajax
  var httpRequest = false;
  if(window.XMLHttpRequest) {
    httpRequest = new XMLHttpRequest();
    if(httpRequest.overrideMimeType) {
      httpRequest.overrideMimeType('text/xml');
    }
  }
  else if(window.ActiveXObject) {
    try {
      httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e) {
      try {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  if(!httpRequest) {
    alert("Impossible de cr\351er une instance XMLHTTP. Veuillez r\351it\351rer votre envoi ult\351rieurement.");
		information.style.visibility = "hidden";
    return;
  }
  try {
    httpRequest.open("POST", "../scripts/envoi_mail.php", true);
  }
  catch(e) {
    alert("L'ouverture du fichier distant a \351chou\351. Veuillez r\351it\351rer votre envoi ult\351rieurement.");
		information.style.visibility = "hidden";
    return;
  }
 
  try {
    var categorie = document.forms[0].categorie.value;
    var titre     = document.forms[0].titre.value;
    var adresse   = document.forms[0].adresse.value;
    var contenu   = document.forms[0].corps.value;
    var pj        = document.forms[0].piece_jointe.value;
    // Remplace les & car caractère spécial pour transmission info AJAX
    contenu  = contenu.replace(/&/g,escape("&"));
    titre    = titre.replace(/&/g,escape("&"));
    titre    = titre.replace(/\r/g," ");
    titre    = titre.replace(/\n/g," ");
    adresse  = adresse.replace(/&/g,escape("&"));
    pj       = pj.replace(/&/g,escape("&"));
    var data =  "categorie="+categorie+"&titre="+titre+"&adresse="+adresse+"&contenu="+contenu+"&pj="+pj;
    httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    httpRequest.send(data);
  }
  catch(e) {
    alert("La communication avec le fichier distant a \351chou\351. Veuillez r\351it\351rer votre envoi ult\351rieurement.");
		information.style.visibility = "hidden";
    return;
  }
  httpRequest.onreadystatechange = function() {
    if(httpRequest.readyState == 4 && httpRequest.status == 200) {
      var reponse = httpRequest.responseText;
      switch(reponse) {
	   case "1":
	      alert("Le message a bien \351t\351 envoy\351, merci pour l'int\351r\352t que vous portez \340 ce site.");
  	      document.forms[0].titre.value        = "";
  	      document.forms[0].adresse.value      = "";
  	      document.forms[0].corps.value        = "";
              document.forms[0].categorie.options[5].selected = true;
  	      document.forms[0].piece_jointe.value = "";
	      break;
	    case "2":
	      alert("La pi\350ce jointe n'existe pas ou elle est trop volumineuse.");
	      break;
	    default:
	      alert("Votre message n'a pu \352tre envoy\351. Veuillez r\351it\351rer votre envoi ult\351rieurement.");
      }
      document.forms[0].titre.focus();
      information.style.visibility = "hidden";
      return;
    }
  }
} | 
Partager