J'ai un méga soucis avec un formulaire! Je m'explique:
J'ai un formulaire tout simple nom/mail/sujet/message
et je souhaite que lorsque je clique sur envoyer cela ne charge pas la page "verif.php" (ou se trouve mon code php pour l'envoi du mail) mais la charge au sein de la div qui contient le formulaire.
J'utilise donc Ajax pour réaliser ça... mais... ça marche pas. :/
Voici le code:
-page du formulaire:
PHP
<h4>Formulaire en ligne:</h4>
<div id="form">
<form method="POST" onSubmit="load_form(this.?verif);return false;" id="formail">
<input type=hidden name=subject value=formmail>
<div class="text">
<div>Nom: <input type="text" class="form" value="" name="nom"></div>
<div>E-mail: <input type="text" class="form" value="" name="mail"></div>
<div>Sujet: <input type="text" class="form" value="" name="titremessage"></div>
<div>Message: <textarea rows="5" cols="25" class="textarea" name="mess"></textarea></div>
<div>
<a href="#form" onclick="document.getElementById('formail').reset()">Annuler</a>
<a href="#" onclick="document.getElementById('formail').submit()">Envoyer</a>
</div>
</div>
</form>
</div>
-page verif.php
PHP
<div>
<?
$headers="De: ".$nom;
$message="Sujet: ".$titremessage." Message: ".$mess." De: ".$nom." (".$mail." )";
mail("monmail@monsite.com",$titremessage,$message,$headers);
echo ('Votre message a bien été envoyé');
?>
</div>
_fonction ajax
PHP
function load_form(select) {
var xhr2 = new_xhr();//On crée un nouvel objet XMLHttpRequest
xhr2.onreadystatechange = function(){
if ( xhr2.readyState == 4 ){//Actions executées une fois le chargement fini
if(xhr2.status != 200){//Message si il se preoduit une erreur
document.getElementById("form").innerHTML ="Erreur code " + xhr2.status;
} else {//On met le contenu du fichier externe dans la div "main"
var c= document.getElementById("form");
c.innerHTML = xhr2.responseText;
var allscript = c.getElementsByTagName('script');
for(var i=0;i< allscript.length;i++){
eval(allscript[i].text);
}
}
} else {//Message affiché pendant le chargement
document.getElementById("form").innerHTML = "Chargement en cours ...<br /><img src='./images/images/loading.gif' alt=''/>";
}
}
xhr2.open("GET", select.split('?')[1]+".php", true);//Appel du fichier externe
xhr2.send(null);
}
Je planche dessus depuis trop de temps en ayant essayé trop de choses sans succès je commence à devenir sénile je crois!
Merci de votre aide!
Antho.