Foros del Web » Creando para Internet » HTML »

[SOLUCIONADO] Formulario con Html5

Estas en el tema de Formulario con Html5 en el foro de HTML en Foros del Web. Hola. No tengo conocimientos en PHP. He hecho una pagina con html5, css3 y un poco de Jquery. He diseñado un formulario de contacto. ¿Como ...
  #1 (permalink)  
Antiguo 06/08/2014, 10:27
 
Fecha de Ingreso: julio-2014
Mensajes: 50
Antigüedad: 9 años, 8 meses
Puntos: 0
Formulario con Html5

Hola.

No tengo conocimientos en PHP. He hecho una pagina con html5, css3 y un poco de Jquery.

He diseñado un formulario de contacto. ¿Como conseguir que, al pulsar submit, se mande un correo electronico a la direccion escogida con los datos rellenos en el formulario?.

Muchas gracias.
  #2 (permalink)  
Antiguo 06/08/2014, 11:29
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Formulario con Html5

HTML5 no ha implementado todavía esa característica

Eso tendrás que hacerlo con un lenguaje del lado del servidor como por ejemplo PHP, busca en Google.
  #3 (permalink)  
Antiguo 06/08/2014, 12:05
 
Fecha de Ingreso: julio-2014
Mensajes: 50
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Formulario con Html5

Entonces, sin saber php,

¿la unica solucion es:

method="post" action="mailto:[email protected]"

y que salga el Outlook?.
  #4 (permalink)  
Antiguo 06/08/2014, 13:03
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
De acuerdo Respuesta: Formulario con Html5

Cita:
Iniciado por danidg86 Ver Mensaje
Entonces, sin saber php,

¿la unica solucion es:

method="post" action="mailto:[email protected]"

y que salga el Outlook?.
  #5 (permalink)  
Antiguo 06/08/2014, 13:54
 
Fecha de Ingreso: julio-2014
Mensajes: 50
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Formulario con Html5

¿Y hay alguna manera de validar un formulario mediante javascript y expresiones regulares usando el action="mailto:[email protected]"?

He probado a hacer saltar una funcion onsubmit y entonces dejaba de salir el outlook. Quiero que solo aparezca el outlook si estan rellenas las casillas obligatorias.
  #6 (permalink)  
Antiguo 06/08/2014, 16:32
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Formulario con Html5

El action se ejecuta siempre y cuando el 'onsubmit' no retorne falso. Si el action no se te ejecuta es que seguramente tengas puesto 'return false' en el 'onsubmit'.La manera de controlarlo es poniendo una condición, si la funcion que valida devuelve error al validar, que el onsubmit retorne falso para que el action no se ejecute; en caso de que se validen bien los datos, que retorne true.
Te recomiendo no añadir el JavaScript en el propio html, sino que todo el JavaScript lo incluyas en un archivo aparte. Es lo que se denomina JavaScript no Obstructivo o no molesto. Esto se haría generando los eventos en el documento aparte.

Un ejemplo de todo esto:

Código HTML:
<!DOCTYPE html>
<html lang="es" xml:lang="es" xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta charset="utf-8" />
		<title>Mi primer formulario</title>
		<script src="formulario.js"></script>
  	</head>
  	<body>
	       	<form id="formulario" action="enviar.php" >
                        <label for="nombre">Nombre</label><input id="nombre" name="nombre" type="text" />
			<input id="boton-aceptar" name="boton-aceptar"  type="submit" value="Aceptar" />
		</form>
    </body>
</html> 
El documento JavaScript sería:
Código Javascript:
Ver original
  1. function validaFormulario() {
  2.     //Aquí van las condiciones que quieras añadir para que el formulario sea válido.
  3. }
  4.  
  5. //Este es el evento load (cuando la página se carga); esto es necesario para que el javascript pueda reconocer los elementos del html. Si no se aplicara esta función, habría que añadir el código después del formulario.
  6. window.onload = function() {
  7.     var miFormulario = document.getElementById('formulario');
  8.     // Este es el evento onsubmit del formulario, dentro de la función se añade lo mismo que se añadiría en el onsubmit que se escribe en html.
  9.     miFormulario.onsubmit = function() {
  10.         if (validaFormulario() == false) {
  11.             return false;
  12.         }
  13.     }
  14.    
  15. }

Aunque para culminar quiero recordarte que lo más adecuado es que las condiciones para rellenar un formulario se evalúen en el servidor, ya sea con php o cualquier otro lenguaje. El motivo es que si un visitante no posee javascript, podrá enviar el formulario con los datos sin validar; o incluso, ya dependiendo como hayas desarrollado todo el formulario, podría no funcionarle correctamente. Comprendo que aún no sabes php y que deseas hacer un formulario de un modo sencillo, solo te comento esto para que sepas los pros y los contras de validar un formulario desde javascript y no desde el lenguaje del servidor. Un saludo.

Última edición por uberalle; 06/08/2014 a las 16:44
  #7 (permalink)  
Antiguo 06/08/2014, 18:43
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Formulario con Html5

No. El que no sepas php no implica que mágicamente se solucione de otra manera.

El "malito" es engañarte a tí mismo de que estás haciendo un formulario... hasta validado y todo, para salir con el "malito". Puaj.

Algunos sistemas de hosting tienen preinstalado un mailer, que es bastante simple de preparar. Creo recordar que había algún servicio para enviar correos, pero lo dudo ya que seguro lo usarían para enviar spam.

Tienes 2 opciones.

Usar algo como google forms http://www.google.com/google-d-s/createforms.html, o contratar a alguien para que te instale un mailer. Uno clásico es este: http://www.scriptarchive.com/formmail.html pero también hay versión php.
  #8 (permalink)  
Antiguo 07/08/2014, 09:17
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Formulario con Html5

si quieres enviarlo es tan fácil como tener un archivo php con lo siguiente

Código PHP:
Ver original
  1. $nombre = $_POST['nombre'];
  2. $teléfono = $_POST['telefono'];
  3. // asi con todos los campos
  4.  
  5. y al final los montas asi:
  6.  
  7. $mensaje = 'Hola $nombre te envía el siguiente mensaje:$mensaje';// etc...
  8.  
  9. if(mail($email, $asunto,$mensaje)){
  10.       echo 1;
  11. }else{
  12.       echo 0;
  13. }

Bueno esto a lo bruto y sin validar nada si quieres saber mas te amplio...
después en tu HTML una funcion que haga esto:
Código Javascript:
Ver original
  1. function enviaCorreo(){
  2.      var url = 'ruta donde tengas el archivo php de arriba';
  3.      var data = $('id del formulario').serialize();
  4.      $.post(url, data, function(res){
  5.             if (res == 1){
  6.                 // enviado
  7.             }else{
  8.                 // fallo
  9.             }
  10.      });
  11. }

Todo esto así a lo rápido y bruto es para que cojas el concepto
  #9 (permalink)  
Antiguo 07/08/2014, 10:14
 
Fecha de Ingreso: julio-2014
Mensajes: 50
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Formulario con Html5

Gracias a todos por la respuesta, pero sin ningun conocimiento de PHP, no me atrevo a hacer copia y pega de algo que no puedo abarcar.
  #10 (permalink)  
Antiguo 07/08/2014, 10:24
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Formulario con Html5

Yo si quieres te lo hago bien, dime los campos y te paso la programación, es poca cosa danig86
  #11 (permalink)  
Antiguo 07/08/2014, 14:15
 
Fecha de Ingreso: julio-2014
Mensajes: 50
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Formulario con Html5

Los campos son: nombre o empresa, e-mail, telefono, asunto y un text-area llamado consulta.

¿Php es un documento js, verdad?

¿La apariencia del formulario puedo modificarla con los estilos css igualmente, no?

¿Necesitas algun otro dato?

De verdad, muchisimas gracias.
  #12 (permalink)  
Antiguo 08/08/2014, 03:26
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Formulario con Html5

Cita:
Iniciado por danidg86 Ver Mensaje
Los campos son: nombre o empresa, e-mail, telefono, asunto y un text-area llamado consulta.

¿Php es un documento js, verdad?

¿La apariencia del formulario puedo modificarla con los estilos css igualmente, no?

¿Necesitas algun otro dato?

De verdad, muchisimas gracias.
Hola de nuevo, el .js es JavaScript, lo que tendrías que tener es lo siguiente, en el documento HTML:

Código Javascript:
Ver original
  1. function enviarMail(){
  2.     var url = 'actions/enviarMail.php';//aquí la ruta donde pongas tu php
  3.     var data = $('#id_del_formulario').serialize();
  4.     $.post(url, data, function(res){
  5.          if(res == 1){
  6.               alert('Mensaje enviado con exito');
  7.          }else{
  8.               alert('Mensaje falló');
  9.          }
  10.     });
  11. }

En el botón del formulario que tiene que ser tipo button para que no recargue la pagina poner el evento onClick="enviarMail()"

Después el PHP sería así:

Código PHP:
Ver original
  1. $nombre = $_POST['nombre'];//aquí no me ha quedado claro el nombre del campo pon el mismo que tenga el atributo name del campo
  2. $email = $_POST['e-mail'];
  3. $asunto = $_POST['asunto'];
  4. $teléfono = $_POST['telefono'];
  5. $consulta = $_POST['consulta'];
  6.  
  7. $mensaje = 'Nombre: '.$nombre.', ' Email: '.$email.', Telefono: '.$teléfono.' la consulta:' .$consulta;
  8.  
  9. if(mail($email, $asunto, $mensaje)){
  10.     echo 1;
  11. }else{
  12.     echo 0;
  13. }


Algo así debería de funcionarte

Etiquetas: formulario, 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 05:15.