Prepare un formulario de contacto que se comunica con ajax con el PHP de enviar, pero la funcion de ajax no esta trabajando bien, porque ni siquiera recibo respuesta del "objeto.readyState". Seria posible que le hechen un ojo a ver que estoy haciendo mal ??
Asi tengo el formulario en el HTML:
Código HTML:
<form name="contactarme" method="post" onsubmit="setEmailSender(); return false"> <input type="text" name="tfNm" id="tfNm" value="Nombre" title="Tu nombre" /> <input type="text" name="tfEm" id="tfEm" value="Email" title="Tu email" /> <textarea name="tfMs" id="tfMs" wrap="SOFT" title="Tu mensaje">Mensaje</textarea> <input type="submit" value="enviar" title="Enviar tu mensaje" /> <div class="conOK" id="msOK"></div> </form>
Código HTML:
function setEmailSender () { var dtNm = document.getElementById('tfNm').value; var dtEm = document.getElementById('tfEm').value; var dtMs = document.getElementById('tfMs').value; var msOK = document.getElementById('msOK'); // if (dtNm && dtEm && dtMs && dtNm != 'Nombre' && dtEm != 'Email' && dtMs != 'Mensaje' ) { setMail (); } else { showResp ('Los campos de Nombre, Email y Mensaje son obligatorios. Complétalos adecuadamente para poder comunicarme contigo.'); return; }; // function setAjax () { var xmlhttp = false; // try { xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); } catch (eff) { try { xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } catch (eex) { xmlhttp = false; }; }; // if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest (); }; // return xmlhttp; }; // function setMail () { var ajax = setAjax (); // msOK.innerHTML = ''; msOK.style.display = 'none'; // ajax.open ('post', 'index_sendmail.php', false); ajax.onreadystatechange = function () { if (ajax.readyState == 0) { alert ('Funcionando - 0'); }; // if (ajax.readyState == 1) { alert ('Funcionando - 1'); showResp ('Espera, enviando tu mensaje.'); }; // if (ajax.readyState == 2) { alert ('Funcionando - 2'); showResp ('Procesando tu mensaje, un momento más.'); }; // if (ajax.readyState == 4) { alert ('Funcionando - 4'); showResp (ajax.responseText); // dtNm.value = ''; dtEm.value= ''; dtMs.value = ''; }; }; // ajax.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded'); ajax.send ('tfNm=' + dtNm + '&tfEm=' + dtEm + '&tfMs=' + dtMs); }; // function showResp (txt) { msOK.onclick = function () { this.style.display = 'none'; }; msOK.style.cursor = 'pointer'; msOK.innerHTML = ''; msOK.style.display = 'block'; msOK.innerHTML = txt; }; };
Código PHP:
<?php
$recipient = '[email protected]';
$subject = 'Contacto Web - http://junihh.com';
$name = $_POST['tfNm'];
$email = $_POST['tfEm'];
$message = $_POST['tfMs'];
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "To: Junior Hernandez <" . $recipient . ">\r\n";
$header .= "From: " . $name . " <" . $email . ">\r\n";
$header .= "Reply-to: " . $email . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion();
// -------------------------------------------------------------
function checkEmail($ema)
{
if (eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $ema))
{
return FALSE;
}
list($Username,$Domain) = split("@",$ema);
if ( getmxrr($Domain,$MXHost) )
{
return TRUE;
} else {
if (@fsockopen($Domain, 25, $errno, $errstr, 30))
{
return TRUE;
} else {
return FALSE;
}
}
}
$emailValid = checkEmail($email);
// -------------------------------------------------------------
if ( !$emailValid || empty($name) || empty($email) || empty($message) || $name == 'Nombre' || $email == 'Email' || $message == 'Mensaje' )
{
echo 'Los campos de Nombre, Email y Mensaje son obligatorios. Complétalos adecuadamente para poder comunicarme contigo.';
} else {
if ( mail($recipient, $subject, $message, $header) )
{
echo 'Mensaje enviado. Te contactaré lo más pronto posible.';
} else {
echo 'Sucedió un error al enviar el mensaje, inténtalo nuevamente.';
}
}
?>