Foros del Web » Programando para Internet » Jquery »

Consulta formulario JQuery

Estas en el tema de Consulta formulario JQuery en el foro de Jquery en Foros del Web. Buenos días gente soy nuevo en el foro. Les comento me baje un template que trae un formulario de contacto aparentemente en jquery (que poco ...
  #1 (permalink)  
Antiguo 16/06/2011, 15:14
 
Fecha de Ingreso: junio-2011
Mensajes: 6
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Consulta formulario JQuery

Buenos días gente soy nuevo en el foro.

Les comento me baje un template que trae un formulario de contacto aparentemente en jquery (que poco entiendo de esto) y el tema es que no logro hacerlo andar. El formulario avisa correctamente cuando alguien no pone su nombre, o no pone un mensaje, o su e-mail, pero cuando ingresas todo como corresponde y tocas el boton submit no pasa nada.

Bueno les dejo el código haber donde está fallando o que es lo que hace falta.


  1. El código en la web HTML:

Código:
          <h3 class="contactTitle">Formulario de contacto:</h3>
          <!-- custom form messages start -->
          <span class="error" id="nameError">Porfavor ingresa tu nombre </span> <span class="error" id="emailError">Porfavor ingresa tu e-mail </span> <span class="error" id="emailError2">Please ingresa un e-mail valido </span> <span class="error" id="messageError">Porfavor ingresa tu mensaje </span>
          <div class="contactSuccessMessage"> <img src="images/ok.png" alt=""/>
            <h4>Gracias por contactarnos.</h4>
          </div>
          <!-- custom form messages end -->
          <!-- contact form start -->
          <div class="contactForm" id="contactForm">
            <form id="contact">
              <fieldset>
                <label for="contactName" id="name_label">Name (required)</label>
                <input type="text" name="contactName" id="contactName" size="30" value="" class="text-input" />
                <label for="contactEmail" id="email_label">Email (required)</label>
                <input type="text" name="contactEmail" id="contactEmail" size="30" value="" class="text-input" />
                <label for="contactSubject" id="subject_label">Subject </label>
                <input type="text" name="contactSubject" id="contactSubject" size="30" value="" class="text-input" />
                <label for="contactMessage" id="message_label">Message (required)</label>
                <textarea  name="contactMessage" id="contactMessage" class="text-input"></textarea>
                <p>
                  <input type="submit" name="submitMessage" class="contactButton" id="contactSubmitBtn" value=""/>
                </p>
              </fieldset>
            </form>
          </div>
          <!-- contact form end -->
  1. El archivo JS Script dentro de una carpeta que contiene los archivos del sitio web.

Código:
jQuery(function() {
  jQuery('.error').hide();
  jQuery('.contactSuccessMessage').hide();
  jQuery(".contactButton").click(function() {
		// validate and process form
		// first hide any error messages
    jQuery('.error').hide();
		
	  var name = jQuery("input#contactName").val();
		if (name == "") {
      jQuery("span#nameError").fadeIn(500);
      jQuery("input#contactName").focus();
      return false;
    }
	  var email = jQuery("input#contactEmail").val();
	  if (email == "") {
      jQuery("span#emailError").fadeIn(500);
      jQuery("input#contactEmail").focus();
      return false;
    }
	
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	if(!emailReg.test(email)) {
	jQuery("span#emailError2").fadeIn(500);
    jQuery("input#contactEmail").focus();
      return false;
	}
	var subject = jQuery("input#contactSubject").val();
	
	  var msg = jQuery("textarea#contactMessage").val();
	  if (msg == "") {
	  jQuery("span#messageError").fadeIn(500);
	  jQuery("textarea#contactMessage").focus();
	  return false;
    }
		
		var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&msg=' + msg;
		//alert (dataString);return false;
		
	  jQuery.ajax({
      type: "POST",
      url: "php/mail.php",
      data: dataString,
      success: function() {
       jQuery("#contactForm").hide();
	   jQuery(".contactSuccessMessage")
        .fadeIn(1500);
      }
     });
    return false;
	});
});

Mi idea es que el formulario mande un email a la dirección [email protected] con los datos ingresados en el formulario.

Gracias desde ya.
Saludos.
  #2 (permalink)  
Antiguo 17/06/2011, 16:49
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Consulta formulario JQuery

Asumimos que contás con el archivo en "php/mail.php" que en sí es el encargado de enviar el email...
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 18/06/2011, 17:46
 
Fecha de Ingreso: junio-2011
Mensajes: 6
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta formulario JQuery

Hola Nahuel. Nop no cuento con ese archivo, solamente estas dos cosas que postie. Podrías indicarme como tendría que armarlo? o que tendría que contener ese archivo?

Gracias!
  #4 (permalink)  
Antiguo 18/06/2011, 18:18
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Consulta formulario JQuery

Y ese archivo es el que envía el email, es un poquito importante :P

Creá un archivo mail.php dentro de una carpeta llamada php con el siguiente contenido:

Código PHP:
Ver original
  1. <?php
  2.     //quien recibe el email
  3.     $recipient  = "[email protected]";
  4.    
  5.     //obtengo las variables por POST o GET
  6.     $name       = $_REQUEST['name'];
  7.     $email      = $_REQUEST['email'];
  8.     $subject    = $_REQUEST['subject'];
  9.     $message    = $_REQUEST['msg'];
  10.    
  11.     //abro el mensaje
  12.     $HTML = '<html><body>';
  13.    
  14.     //creo el mensaje
  15.     $HTML.= '<h1>Nuevo mensaje</h1>';
  16.     $HTML.= "<p><strong>Nombre: </strong> $name</p>";
  17.     $HTML.= "<p><strong>Email: </strong> $email</p>";
  18.     $HTML.= "<p><strong>Mensaje: </strong> $message</p>";  
  19.    
  20.     //cierro el mensaje
  21.     $HTML.= "</body></html>";
  22.  
  23.    
  24.     //envío el email
  25.     sendHTMLemail($HTML,$email,$recipient,$subject);
  26.    
  27.    
  28.     //funcion para envio de email con formato
  29.     function sendHTMLemail($HTML,$from,$to,$subject)
  30.     {
  31.         $headers = "From: $from\n";
  32.         $headers .= "MIME-Version: 1.0\n";
  33.         $boundary = uniqid("HTMLEMAIL");
  34.         $headers .= "Content-Type: multipart/alternative;".
  35.                     "boundary = $boundary\n\n";
  36.  
  37.         $headers .= "This is a MIME encoded message.\n\n";
  38.  
  39.         $headers .= "--$boundary\n".
  40.                     "Content-Type: text/plain; charset=ISO-8859-1\n".
  41.                     "Content-Transfer-Encoding: base64\n\n";
  42.                    
  43.         $headers .= chunk_split(base64_encode(strip_tags($HTML)));
  44.         $headers .= "--$boundary\n".
  45.                     "Content-Type: text/html; charset=ISO-8859-1\n".
  46.                     "Content-Transfer-Encoding: base64\n\n";
  47.                    
  48.         $headers .= chunk_split(base64_encode($HTML));
  49.         return mail($to,$subject,"",$headers);
  50.        
  51.     }
  52.    
  53. ?>


Ese es un código PHP para enviar emails que uso casi siempre. Como verás es fácil de personalizar y tiene la ventaja de que el email que envías es con formato HTML.

Acá lo podés ver funcionando: http://nahueljose.com.ar/temp/
Debería enviarte un mail a la dirección que proporcionaste.

Todo esto asumiendo que estás en un servidor que soporta PHP y qué se yo.
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 19/06/2011, 13:57
 
Fecha de Ingreso: junio-2011
Mensajes: 6
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta formulario JQuery

Gracias loco. Hice la prueba recien, y el formulario al completarlo y tocar Submit me tira el comentario "Gracias por contactarnos." (que antes no lo hacía) pero cuando me fijo la casilla de correo no me ha enviado el mensaje :s que puede ser ?

Última edición por augusftw; 19/06/2011 a las 14:15
  #6 (permalink)  
Antiguo 19/06/2011, 16:45
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Consulta formulario JQuery

Cita:
Iniciado por augusftw Ver Mensaje
Gracias loco. Hice la prueba recien, y el formulario al completarlo y tocar Submit me tira el comentario "Gracias por contactarnos." (que antes no lo hacía) pero cuando me fijo la casilla de correo no me ha enviado el mensaje :s que puede ser ?
Pues a mí me funciona bárbaro, el email me llega bien. El código que te pasé está funcionando. Revisá que no sea otra cosa, o poné el código acá.
__________________
nahueljose.com.ar
  #7 (permalink)  
Antiguo 21/06/2011, 16:32
 
Fecha de Ingreso: noviembre-2009
Ubicación: Monterrey
Mensajes: 37
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario JQuery

Utiliza este code con esto jala brother!

Código PHP:
Ver original
  1. <?php
  2.  
  3. $EmailFrom = "[email protected]";
  4. $EmailTo = "[email protected]";
  5. $Subject = "Correo v&iacute;a web;
  6. $name = Trim(stripslashes($_POST['name']));
  7. $email = Trim(stripslashes($_POST['email']));
  8. $message = Trim(stripslashes($_POST['message']));
  9.  
  10.  
  11.  
  12. $Body = 'Datos'."\n";
  13. $Body .= "Nombre: "; $Body .= $name; $Body .= "\n";
  14. $Body .= "Email: "; $Body .= $email; $Body .= "\n";
  15. $Body .= "Mensaje: "; $Body .= $message; $Body .= "\n";
  16.  
  17.  
  18. $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
  19.  
  20.  
  21. ?>
  #8 (permalink)  
Antiguo 21/06/2011, 18:32
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: Consulta formulario JQuery

Cita:
Iniciado por augusftw Ver Mensaje
Gracias loco. Hice la prueba recien, y el formulario al completarlo y tocar Submit me tira el comentario "Gracias por contactarnos." (que antes no lo hacía) pero cuando me fijo la casilla de correo no me ha enviado el mensaje :s que puede ser ?
¿estás probando el script php en un servidor que tenga un servidor SMTP?
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...

Etiquetas: javascript, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:50.