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