Foros del Web » Creando para Internet » HTML »

Form HTML5, PHP, CSS y cosicas raras..

Estas en el tema de Form HTML5, PHP, CSS y cosicas raras.. en el foro de HTML en Foros del Web. Antetodo, buenas tardes compañeros! Tengo un problema que me lleva arrastrando un par de días y ya me tiene un poco mosca.. Me he metido ...
  #1 (permalink)  
Antiguo 17/09/2012, 11:44
Avatar de deividz  
Fecha de Ingreso: septiembre-2012
Ubicación: Maspujolscity
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta Form HTML5, PHP, CSS y cosicas raras..

Antetodo, buenas tardes compañeros!

Tengo un problema que me lleva arrastrando un par de días y ya me tiene un poco mosca..
Me he metido de lleno a "trapichear" el HTML5 y ahora mismo, estoy en plena lucha con lo siguiente:
Quiero hacer un formulario, tengo todo mas o menos conseguido, me explico:

Tengo todos los campos, con sus input y demáses.. quedaría tal que así:
Código HTML:
<form id="ContactForm" action="contactform.php" method="post">
						<div>
							<div  class="wrapper">
								<span>*Nombre:</span>
								<input name="Nombre" type="text" required class="input" id="Nombre" maxlength="60">
							</div>
                            <div  class="wrapper">
								<span>Empresa:</span>
								<input name="Empresa" type="text" class="input" id="Empresa" maxlength="50">
							</div>
                            <div  class="wrapper">
								<span>*Motivo:</span>
								<input name="motivo" type="text" class="input" id="motivo" maxlength="50">
</div>
								<div  class="wrapper">
								<span>*Telefono</span>
								<input type="tel" id="geografico" name="geografico" placeholder="+34" size="3" value="+34" disabled>
<input type="tel" id="telefono" name="telefono" size="6" maxlength=9 required pattern="[0-9]{6}" class="input" >
							</div>
                            <div  class="wrapper">
								<span>E-mail</span>
								<input type="email" id="mail" name="mail" required class="input" >
							</div>
							<div  class="textarea_box">
								<span>Su mensaje:</span>
								<textarea id="consulta" name="consulta" cols="1" rows="1"></textarea>
							</div>
                            <div  id="aster"> * | Campos obligatorios
                              
                              <br>
                              <input type="checkbox" name="condiciones" required id="condiciones">
                              <label for="condiciones">Acepto las condiciones*</label>
                  </div>
							<a href="#" onClick="document.getElementById('ContactForm').submit()">Enviar</a>
							<a href="#" onClick="document.getElementById('ContactForm').reset()">Limpiar</a>
						</div>
					</form> 
El archivo contactform.php que es el que envía el email queda tal que así:
Código PHP:
<?php 

//Correo de destino; donde se enviará el correo.
$correoDestino "[email protected]";


//Variables. 

$Nombre $_POST['Nombre'];
$Empresa $_POST['Empresa'];
$motivo $_POST['motivo'];
$telefono $_POST['telefono']; 
$mail $_POST['mail']; 
$consulta $_POST['consulta']; 
$fecha time ();
$fechaFormateada date ("j/n/Y"$fecha);

//Formateo el asunto del correo
$asunto "Contacto WEB_$Nombre; motivo";

//Cuerpo del email que se te enviará. 
 
$cuerpo "Enviado por: " $Nombre "\n, "
$cuerpo .= "Empresa: " .$Empresa "\n ";
$cuerpo .= "Motivo: " .$motivo "\n ";
$cuerpo .= "Telefono de contacto:" .$telefono "\n";
$cuerpo .= "E-mail: " .$mail "\n";
$cuerpo .= "Comentario:" .$consulta " \n ";
// Envío el mensaje
mail $correoDestino$asunto$cuerpo$textoEmisor);


//lo otro

$mail_status mail($mail_to);
 
 
?>
   <script language="javascript" type="text/javascript">
      alert('Gracias por enviar el mensaje. Nos pondremos en contacto lo antes posible.');
      window.location = 'Contacta.html';
   </script>
   
<?php
Y ahora os explico; actualmente, he conseguido que me llegue el email, PERO, el problema está en que si, se envía pero lo que no consigo es que no se pueda enviar el formulario sin que estén todos los campos correctamente rellenos.
Actualmente tengo el jquery: "jquery.html5form-1.5-min.js" con sus dos scripts:
Código HTML:
<script>
    $(document).ready(function(){
        $('#ContactForm').html5form();    
    });
</script>
<script>

    $('#myform').html5form({
        allBrowsers: true
    });

</script> 
puestos en el archivo HTML donde se encuentra el form.
Funciona, se pone en rojo el textbox en señal de que está mal.. pero al darle al boton enviar se envía igualmente.

Tanto el form como el archivo "contactform.php" me los he sacado de la manga leyendo por internet y haciendo copy&paste de lo que más o menos iba entendiendo..

He mirado en 20.000 webs, tanto en español como en inglés, pero no me consigo salir.. soy un poco torpe.. a ver si me podeis ayudar compañeros!!!

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 17/09/2012, 12:40
Avatar de flashmax  
Fecha de Ingreso: julio-2012
Ubicación: Bs.As. Argentina
Mensajes: 507
Antigüedad: 12 años, 4 meses
Puntos: 86
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Te dejo un ejemplo haber si te sirve ..saludos!

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<html>
<head>
<script type="text/javascript">
function validar() 
{
if (document.ContactForm.Nombre.value=="") // nombre del campo
{
alert("Debe ingresar su Nombre");
document.ContactForm.Nombre.focus();
return;
}
document.ContactForm.submit();
}
</script>
</head>

<body>
<div id="contenedor">
<form id="ContactForm" action="contactform.php" name="ContactForm" method="post">
						<div>
							<div  class="wrapper">
								<span>*Nombre:</span>
								<input name="Nombre" type="text" required class="input" id="Nombre" maxlength="60">
							</div>
                            <div  class="wrapper">
								<span>Empresa:</span>
								<input name="Empresa" type="text" class="input" id="Empresa" maxlength="50">
							</div>
                            <div  class="wrapper">
								<span>*Motivo:</span>
								<input name="motivo" type="text" class="input" id="motivo" maxlength="50">
</div>
								<div  class="wrapper">
								<span>*Telefono</span>
								<input type="tel" id="geografico" name="geografico" placeholder="+34" size="3" value="+34" disabled>
<input type="tel" id="telefono" name="telefono" size="6" maxlength=9 required pattern="[0-9]{6}" class="input" >
							</div>
                            <div  class="wrapper">
								<span>E-mail</span>
								<input type="email" id="mail" name="mail" required class="input" >
							</div>
							<div  class="textarea_box">
								<span>Su mensaje:</span>
								<textarea id="consulta" name="consulta" cols="1" rows="1"></textarea>
							</div>
                            <div  id="aster"> * | Campos obligatorios
                              
                              <br>
                              <input type="checkbox" name="condiciones" required id="condiciones">
                              <label for="condiciones">Acepto las condiciones*</label>
                  </div>
							<a href="javascript:validar();">Enviar</a>
							<a href="#" onClick="document.getElementById('ContactForm').reset()">Limpiar</a>
						</div>
					</form> 
</div>
</body>
</html> 
__________________
Saludos!
----------------------------------------------------------
  #3 (permalink)  
Antiguo 17/09/2012, 13:20
Avatar de deividz  
Fecha de Ingreso: septiembre-2012
Ubicación: Maspujolscity
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Nada compañero.. sigue igual..
  #4 (permalink)  
Antiguo 17/09/2012, 13:51
Avatar de flashmax  
Fecha de Ingreso: julio-2012
Ubicación: Bs.As. Argentina
Mensajes: 507
Antigüedad: 12 años, 4 meses
Puntos: 86
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Que es lo que sigue igual? no querías validar los campos el ejemplo que te di si no completas el nombre te da la alerta y no lo envía . o te estas refiriendo a otro tipo de validación de campos?
__________________
Saludos!
----------------------------------------------------------
  #5 (permalink)  
Antiguo 18/09/2012, 02:20
Avatar de deividz  
Fecha de Ingreso: septiembre-2012
Ubicación: Maspujolscity
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Exactamente eso, que aún poniendo ese código, envía igualmente el form al email.. hay un punto que está mal mal. Pero no doy con el.
  #6 (permalink)  
Antiguo 18/09/2012, 13:37
Avatar de flashmax  
Fecha de Ingreso: julio-2012
Ubicación: Bs.As. Argentina
Mensajes: 507
Antigüedad: 12 años, 4 meses
Puntos: 86
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

revisa si tienes esto:
<a href="javascript:validar();">Enviar</a>

<form id="ContactForm" action="contactform.php" name="ContactForm"
__________________
Saludos!
----------------------------------------------------------
  #7 (permalink)  
Antiguo 19/09/2012, 07:11
Avatar de deividz  
Fecha de Ingreso: septiembre-2012
Ubicación: Maspujolscity
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

OK, funciona perfecto compañero.. ahora el problema es que recibo el email con la información en blanco.. no guarda lo que se pone en el formulario... (Alguien tiene una cuchilla para mis venas? xd)
  #8 (permalink)  
Antiguo 19/09/2012, 10:00
Avatar de flashmax  
Fecha de Ingreso: julio-2012
Ubicación: Bs.As. Argentina
Mensajes: 507
Antigüedad: 12 años, 4 meses
Puntos: 86
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Hola reviza si tienes el method="post"> en todo caso muestra todo el código de vuelta html y php. saludos!
__________________
Saludos!
----------------------------------------------------------
  #9 (permalink)  
Antiguo 19/09/2012, 10:18
Avatar de deividz  
Fecha de Ingreso: septiembre-2012
Ubicación: Maspujolscity
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Sí lo tengo el metodo post.. :(

Código HTML:
<form id="ContactForm" action="contactform.php" method="post" name="ContactForm">
						<div>
							<div  class="wrapper">
								<span>*Nombre:</span>
								<input name="Nombre" type="text" required class="input" id="Nombre" maxlength="60">
							</div>
                            <div  class="wrapper">
								<span>Empresa:</span>
								<input name="Empresa" type="text" class="input" id="Empresa" maxlength="50">
							</div>
                            <div  class="wrapper">
								<span>*Motivo:</span>
								<input name="motivo" type="text" class="input" id="motivo" maxlength="50">
</div>
								<div  class="wrapper">
								<span>*Telefono</span>
								<input type="tel" id="geografico" name="geografico" placeholder="+34" size="3" value="+34" disabled>
<input type="tel" id="telefono" name="telefono" size="6" maxlength=9 required pattern="[0-9]{6}" class="input" >
							</div>
                            <div  class="wrapper">
								<span>E-mail</span>
								<input type="email" id="mail" name="mail" required class="input" >
							</div>
							<div  class="textarea_box">
								<span>Su mensaje:</span>
								<textarea id="consulta" name="consulta" cols="1" rows="1"></textarea>
							</div>
                            <div  id="aster"> * | Campos obligatorios
                              <br>
                                            </div>
							<p><a href="javascript:validar();" onClick="document.getElementById('ContactForm').submit()">Enviar</a>
						    <a href="#" onClick="document.getElementById('ContactForm').reset()">Limpiar</a></p>
</div>
					</form> 
Y el php:

Código PHP:
<?php 

//Correo de destino; donde se enviará el correo.
$correoDestino "[email protected]";


//Variables. 

$Nombre $_POST['Nombre'];
$Empresa $_POST['Empresa'];
$motivo $_POST['motivo'];
$telefono $_POST['telefono']; 
$mail $_POST['mail']; 
$consulta $_POST['consulta']; 
$fecha time ();
$fechaFormateada date ("j/n/Y"$fecha);

//Formateo el asunto del correo
$asunto "Contacto WEB_$Nombre; $motivo";

//Cuerpo del email que se te enviará. 
 
$cuerpo "Enviado por: " $Nombre "\n, "
$cuerpo .= "Empresa: " .$Empresa "\n ";
$cuerpo .= "Motivo: " .$motivo "\n ";
$cuerpo .= "Telefono de contacto:" .$telefono "\n";
$cuerpo .= "E-mail: " .$mail "\n";
$cuerpo .= "Comentario:" .$consulta " \n ";

// Envío el mensaje
mail $correoDestino$motivo);

$mail_status mail($mail_to);
 
?>
   <script language="javascript" type="text/javascript">
      alert('Su mensaje ha sido enviado. Nos pondremos en contacto lo antes posible.');
      window.location = 'Contacta.html';
   </script>
<?php
tal cual... :(
  #10 (permalink)  
Antiguo 19/09/2012, 14:28
Avatar de flashmax  
Fecha de Ingreso: julio-2012
Ubicación: Bs.As. Argentina
Mensajes: 507
Antigüedad: 12 años, 4 meses
Puntos: 86
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

tu codigo php tiene errores ,si quieres continuar con tu formulario abre un nuevo post en php pero te recomiendo que hagas uno nuevo con esta herramienta online ya que tienes la obsion de reCAPTCHA para evitar spam y muchas mas cosas, como validacion de campos.
Link:http://www.formmail-maker.com/generator.php

no te olvides de activar :Use more secure reCAPTCHA
__________________
Saludos!
----------------------------------------------------------
  #11 (permalink)  
Antiguo 23/09/2012, 23:53
Avatar de anewryzm  
Fecha de Ingreso: septiembre-2011
Mensajes: 47
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Form HTML5, PHP, CSS y cosicas raras..

Aquí te dejo un código.
Te recomiendo estudiarlo.
Perdón por la pequeña explicación, pero creo que con unas leídas es suficiente.

Lo que hace el código es que al presionar el boton "Enviar" - (Se utiliza un botón osea --> input type="button" no un --> input type="submit") - El script valida el primer campo de nombre "nom" y analiza si está vacio.

Código Javascript:
Ver original
  1. ...
  2. if (form.nom.value==0)
  3.     {
  4. ...

Y así sucesivamente con el resto de los campos.
Pero si te percatas, cada análisis contiene un "return false;" y esto es para que se detenga el script.

Al final se envía el formulario con un:

Código Javascript:
Ver original
  1. ...
  2. document.form.submit();
  3. ...

Código Javascript:
Ver original
  1. function validar()
  2. {
  3.     var form =document.form;
  4.     if (form.nom.value==0)
  5.     {
  6.         alert("ingrese el nombre");
  7.         form.nom.value="";
  8.         form.nom.focus();
  9.         return false;
  10.     }
  11.     if (form.tel.value==0)
  12.     {
  13.         alert("ingrese el telefono");
  14.         form.tel.value="";
  15.         form.tel.focus();
  16.         return false;
  17.     }
  18.     if (form.correo.value==0)
  19.     {
  20.         alert("ingrese el E-Mail");
  21.         form.correo.value="";
  22.         form.correo.focus();
  23.         return false;
  24.     }
  25.    
  26.     document.form.submit();
  27. }

Espero te sirva de mucho.
Saludos.
Sígueme en Twitter: @Anewryzm
__________________
@Anewryzm

Etiquetas: css, formulario, html5, input, internet, javascript, php, type
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 23:17.