Foros del Web » Creando para Internet » HTML »

Formulario de contacto HTML5

Estas en el tema de Formulario de contacto HTML5 en el foro de HTML en Foros del Web. Hola a todos, Tengo un formulario de contacto en HTML5, la cuestion es que funciona bien el hecho de las casillas "required" pero no consegui ...
  #1 (permalink)  
Antiguo 15/01/2013, 06:21
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Formulario de contacto HTML5

Hola a todos,

Tengo un formulario de contacto en HTML5, la cuestion es que funciona bien el hecho de las casillas "required" pero no consegui que me enviase los emails y tuve que usar otro metodo de otro formulario que tenia y que muestra la obligatoriedad de los campos con jQuery. La cuestion es que yo quiero que funciona sin tener que recurrir a jQuery y que muestre esos fallos tan esteticos y multilenguaje de HTML5.

Este es mi formulario, copio tambien la seccion jQuery:

Código HTML:
Ver original
  1. <form action="process.php" id="formulario" method="post"  autocomplete="on">
  2.         <p> <label for="username" class="iconic user" > Nombre <span class="required">*</span></label> <input type="text" name="nombre" id="username"  required="required" placeholder="¿Cómo te llamas?" autofocus /> </p>
  3.         <p> <label for="usermail" class="iconic mail-alt"> E-mail <span class="required">*</span></label> <input type="email" name="email" id="usermail" placeholder="Nunca te enviaremos spam" required  /> </p>
  4.         <p> <label for="message" class="iconic comment"> Mensaje  <span class="required">*</span></label> <textarea placeholder="Contestaremos lo antes posible" name="comentario"  required="required" ></textarea> </p>
  5.         <p class="indication"> Todos los campos marcados con <span class="required">*</span> son obligatorios</p>
  6.         <input type="submit" value="Enviar" />
  7.         </form>
  8. <!-- Códigos de validación para el formulario -->
  9.     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  10.     <script src="js/jquery.validate.js"></script>
  11.     <script src="js/jquery.form.js"></script>
  12. <!-- Script que llama a la validación del formulario -->
  13.     <script>
  14.         $(function(){
  15.             $('#formulario').validate({
  16.                 submitHandler: function(form) {
  17.                     $(form).ajaxSubmit({
  18.                         url: 'process.php',
  19.                         success: function() {
  20.                            
  21.                             $('#textoContacto h3').hide();
  22.                             $('#formulario').hide();
  23.                             $('#caja').append("<p>Mensaje enviado, <strong>gracias por contactar con nosotros</strong>, responderemos lo antes posible.</p>")
  24.                         }
  25.                     });
  26.                 }
  27.             });        
  28.         });
  29.     </script>
  30. <!-- Fin códigos de validación del formulario -->

He probado a quitar el jQuery y procesar el formulario con un archivo externo en PHP pero envia los mensajes y la pagina queda en blanco cosa que con el jQuery no sucede ya que entrega un mensa tipo "su mensaje ha sido enviado gracias"

Este es el php:
Código PHP:
Ver original
  1. <?php
  2.  
  3. //Correo de destino; donde se enviará el correo.
  4. $correoDestino = "[email protected]";
  5. $correoDestino2 = "[email protected]";
  6.  
  7. //Texto emisor; sólo lo leerá quien reciba el contenido.
  8. $textoEmisor = "MIME-VERSION: 1.0\r\n";
  9. $textoEmisor .= "Content-type: text/html; charset=UTF-8\r\n";
  10.  
  11. /*
  12.     Recopilo los datos vía POST
  13.     Con strip_tags suprimo etiquetas HTML y php para evitar una posible inyección.
  14.     Como no gestiona base de datos no es necesario limpiar de inyección SQL.
  15. */
  16. $nombre = strip_tags($_POST['nombre']);
  17. $correo = strip_tags($_POST['email']);
  18. $comentario = strip_tags($_POST['comentario']);
  19. $fecha = date('j/n/Y');
  20.  
  21. //Formateo el asunto del correo
  22. $asunto = "Mensaje desde el formulario de Bipolar Station";
  23.  
  24. //Formateo el cuerpo del correo
  25.  
  26. $cuerpo = "<b>Enviado por:</b> " . $nombre . "<br />";
  27. $cuerpo .= "<b>E-mail:</b> " . $correo . "<br />";
  28. $cuerpo .= "<b>Fecha:</b> " . $fecha . "<br />";
  29. $cuerpo .= "<b>Comentario:</b> " . $comentario;
  30.  
  31. // Envío el mensaje
  32. mail( $correoDestino, $asunto, $cuerpo, $textoEmisor);
  33. mail( $correoDestino2, $asunto, $cuerpo, $textoEmisor);
  34. ?>

¿¿Cómo puedo hacer con HTML5 para que envie el mensaje y devuelva un mensaje de agradecimiento desde la misma página??


SAludos
  #2 (permalink)  
Antiguo 15/01/2013, 06:43
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Formulario de contacto HTML5

Cita:
Iniciado por MindPaniC Ver Mensaje
¿¿Cómo puedo hacer con HTML5 para que envie el mensaje y devuelva un mensaje de agradecimiento desde la misma página??
¿Sin usar AJAX? No puedes.

Claro que la página queda en blanco, porque no estás imprimiendo nada en tu archivo PHP.

Respecto a cómo lo haces usando jQuery, si en process.php causa un error, seguirá mostrando que el mensaje ha sido enviado. Así que, y esto responde también a tu pregunta, deberías de poner algo en tu archivo PHP si el mensaje se ha enviado a o no —con una comprobación. Y una vez hecho, puedes o bien que se cargue el archivo PHP y muestre el mensaje, o recoger con jQuery mediante response el mensaje y meterlo dentro de append.
  #3 (permalink)  
Antiguo 15/01/2013, 07:34
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Formulario de contacto HTML5

Primero hay que tener varias cosas a tener en cuenta
No todos los navegadores reconocen esos nuevos atributos de html5 para los inputs.
Validar un form de envío de emails con javascript tiene como único propósito mejorar la usabilidad por parte del usuario, presentar mensajes y evitar que el form redirija al action innecesariamente. Una validación seria, además debe hacerse en el lenguaje del servidor (php en tu caso), ya que javascript puede ser manipulado por el cliente, ó deshabiltado, incluso, el propio DOM puede ser facilmente modificado.

Ajax, de alguna forma te permite hacer ambas cosas a la vez, jquery te simplifica, aunque también es viable hacerlo con javascript puro.
Dado el tipo de validación que usa tu form, que es bastante básica, yo ni usaría jquery.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 26/01/2013, 17:29
Avatar de marmol  
Fecha de Ingreso: marzo-2004
Ubicación: en argentina
Mensajes: 197
Antigüedad: 20 años, 1 mes
Puntos: 4
Respuesta: Formulario de contacto HTML5

WOU impresionante respuesta emprear. por favor sos un groso papa, tendria que haber dado, como minimo las gracias la perosna que solicito ayuda pero bueno, en fin. Te felicito saludoss
__________________
Fabricante Maquina industriales
http://www.guidobatanmaquinarias.com

Etiquetas: contacto, formulario, google, html5, php
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 22:52.