*He podido validar el formulario y tambien he podido enviar el correo, pero ahi es el detalle... cuando envio el correo (osea presiono el boton enviar) se muestra el cursor de carga (el reloj de arena) que se supone indica que esta enviando el mensaje, pero el problema es que yo puedo seguir presionando y presionando el boton... y sigo y sigo enviando el correo y eso esta mal !!
Lo que yo quiero es que desaparezca el boton cuando envie el mail y salga un gif "loading" , lo que hice es poner el boton dentro de un div y cuando se envia se ejecute el Assign() , pero no se como indicarle a mi funcion xajax cuando se esta enviando el correo, aqui pongo mi funcion de envio de email:
Código PHP:
function validar_email($email) {
return preg_match('/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $email);
}
function procesar_contacto($form_entrada){
//creo el xajaxResponse para generar una salida
$respuesta = new xajaxResponse();
$respuesta->setCharacterEncoding('ISO-8859-1');
//validación
$error_form = "";
if ($form_entrada["nombre"] == ""){
$error_form = "* Debe escribir su nombre";
$marca = "focus1";}
elseif ($form_entrada["postal"] == ""){
$error_form = "* Debe escribir su nº postal";
$marca = "focus2";}
elseif ($form_entrada["telefono"] == ""){
$error_form = "* Debe escribir su teléfono";
$marca = "focus3";}
elseif ($form_entrada["email"] == ""){
$error_form = "* Debe escribir su e-mail";
$marca = "focus4";}
elseif (!validar_email($form_entrada["email"])){
$error_form = "* El e-mail es invalido";
$marca = "focus4";}
elseif ($form_entrada["requerimiento"] == ""){
$error_form = "* Debe escribir sus requerimientos";
$marca = "focus5";}
//compruebo resultado de la validación
if ($error_form != ""){
//Hubo un error en el formulario
//en la capa donde se muestran mensajes, muestro el error
$respuesta->Assign("alert","innerHTML","<span style='color:red;'>$error_form</span>");
$respuesta->Assign("focus1","innerHTML","");
$respuesta->Assign("focus2","innerHTML","");
$respuesta->Assign("focus3","innerHTML","");
$respuesta->Assign("focus4","innerHTML","");
$respuesta->Assign("focus5","innerHTML","");
$respuesta->Assign($marca,"innerHTML","<span style='color:red; font-size:10px;'>*</span>");
}else{
//Aqui deberia aparecer el gif y desaparecer el boton
$salida = '<img src="images/sending.gif" width="16" height="16" />'
$respuesta->Assign("success","innerHTML",$salida);
// ...................ENVIO EL CORREO CON PHPMAILER .......................//
if(!mail($para, $asunto, $cuerpo_html, $header)){
$salida = "No se pudo enviar su mensaje<br>en estos momentos";
$respuesta->Assign("success","innerHTML",$salida);
}else{
$salida = 'Su mensaje ha sido enviado<br>con éxito';
$respuesta->Assign("success","innerHTML",$salida);
}
}
return $respuesta;
}