Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2009, 15:58
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
"enviando" email con xajax

Hola, bueno hace tiempo que estaba practicando con el xajax y me ha ido bien, ahora lo que estoy aplicando es un formulario de contactenos con este metodo:

*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;

Espero me puedan ayudar con alguna idea o si el metodo no es el adecuado para esta rutina, saludos
__________________
Quitenme la vida pero no la bebida.