Cierto, aqui va
archivo.html llamamos al archivo ajax
<script type="text/javascript" src="js/ajax.js"></script>
nuestro formulario
<form id="form_mail" onSubmit="enviarMail(); return false" name="enviar_email" action="">
<input id="form" name="name" type="text" value="" size="30" maxlength="80" title="Name"><br><br>
<input id="form" name="mail" type="text" value="" size="30" maxlength="80" title="Mail"><br><br>
<textarea id="form" name="message" cols="30" rows="3" title="Message"></textarea><br><br>
<input id="btn_send_mail" name="send" type="submit" value="Send message">
</form>
creamos un div para que nos muestre el resultado
<div id="resultado_mail"></div>
ajax.js llamamos a la libreria jquery, esto es opcional, mas abajo os explico para que lo necesito
src="jquery.js"
function nuevoAjax() {
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
Una función que llama a la libreria de jquery $(document).ready(function(){
$("#form_mail").show();
$("#resultado_mail").hide();
$("#btn_send_mail").click(function(){
$("#form_mail").hide();
$("#resultado_mail").show();
});
});
function enviarMail() {
c = document.getElementById('resultado_mail');
//variable=documenet.nombre_del_form.nombre_del_cont rol.value
name=document.enviar_email.name.value;
mail=document.enviar_email.mail.value;
mess=document.enviar_email.message.value;
ajax=nuevoAjax();
c.innerHTML = 'Loading...';
llamamos al archivo .php
ajax.open("POST", "http://www.folter.es/acr/php/send_mail.php", true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
c.innerHTML = ajax.responseText
}
borrarCampos()
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("mail="+mail+"&name="+name+"&message="+m ess)
}
function borrarCampos() {
document.enviar_email.name.value="";
document.enviar_email.mail.value="";
document.enviar_email.message.value="";
}
send_mail.php
<?php
$name = $_POST['name'];
$mail = $_POST['mail'];
$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/html";
$message = "<b>Este mensaje fue enviado por:</b> " . $name . "<br>";
$message .= "<b>Su e-mail es:</b> " . $mail . "<br>";
$message .= "<b>Mensaje:</b> " . $_POST['message'] . "<br><br>";
$message .= "Enviado el " . date('d/m/Y', time());
$para = '
[email protected]';
$asunto = 'Contacto desde Another Chance Records';
if (@mail($para, $asunto, utf8_decode($message), $header))
echo 'Message sent successfully';
else
echo 'Error';
?>
Aclaración
He metido una funcion de javascript llamando a la libreria jquery, para que me sea mas sencillo de crear esa funcion. Dicha funcion sirve para cuando presiones el boon enviar correo el formulario se oculta y muestra el div que creamos anteriormente para decirnos el resultado del correo.
Para los que no quieren esta opcion solo tienen que borrar la linea que llama a la libreria jquery (src="jquery.js") y la funcion de color verde.
Saludos!