Beruflich Dokumente
Kultur Dokumente
Si te interesa aprender cmo hacerlo, te recomiendo que leas esto. Si no, siempre puedes
esperar a que acabe, y ponga un link de descarga a los archivos finales.
Nota: tened en cuenta que usaremos varios atributos propios de HTML5 (aunque haremos que
funcione en navegadores antiguos )
Para hacer todo crearemos una carpeta con estos archivos (por ahora):
Una carpeta llamada css, donde guardaremos style.css, el archivo para editar la
apariencia del formulario, y reset.css, elfamoso reset de Eric Meyer (suelo preferir
usar normalize.css, pero no merece la pena incluirlo sin editar para un proyecto
pequeo).
<!-Viewport (la usan los mviles para calcular el ancho de las pginas)
-->
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=1" />
</head>
<body>
<div id="container">
</p>
<p class="submit">
<input type="submit" id="submit" value="Enviar">
</p>
</form>
<!-Aqu pondremos el mensaje cuando enviemos el mensaje
-->
<div id="correcto"></div>
</div>
<script type="text/javascript" src="js/script.js"></script>
</body>
</html>
Toda la serie:
Ya que el reset.css es slo copiar el cdigo que viene en el link de arriba, slo pondr
el style.css:
html
{
background: #eee;
color: #333;
font-size: 87.5%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#container
{
width: 100%;
max-width: 650px;
background: #fff;
border: 1px solid #ccc;
margin: 2em auto;
padding: 2em;
}
.ie6 #container
{
width: 650px;
}
border-color: #5AB7F5;
}
height: 2em;
width: 100%;
padding: .2em;
padding-left: .5em;
border: 1px solid #d2d2d2;
margin-left: 1em;
}
textarea
{
padding: .5em;
}
}
input[type="text"], input[type="email"]
{
max-width: 250px;
}
textarea {
display: block;
margin-left: 0;
min-height: 8em;
}
p{
line-height: 2.3em;
}
p.submit
{
text-align: center;
margin-top: 1em;
}
.requerido {
color: #3D85C6;
font-weight: 700;
font-size: 1.2em;
}
input[type="submit"]
{
display: inline-block;
*display: inline;
zoom: 1;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,
endColorstr=#E3E3E3);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#F9F9F9',
endColorstr='#E3E3E3')";
cursor: pointer;
color: #444;
position: relative;
background: #F1F1F1;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%,
#F9F9F9), color-stop(100%, #E3E3E3));
background-image: -webkit-linear-gradient(#F9F9F9, #E3E3E3);
input[type="submit"]:hover
{
background: #EAEAEA;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EAEAEA,
endColorstr=#EAEAEA);
-ms-filter:
"progid:DXImageTransform.Microsoft.gradient(startColorstr='#EAEAEA',
endColorstr='#EAEAEA')";
}
input[type="submit"]:active
{
background: #EAEAEA;
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3) inset;
-moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3) inset;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.3) inset;
}
#error ul {
list-style: disc;
color: red;
padding-left: 40px;
margin-bottom: 2em;
}
#correcto {
color: green;
text-align: center;
}
Toda la serie:
return document.getElementById(id);
}
/*
Variables para evitar acceder al DOM muchas veces,
y abreviar
*/
var form = $('formulario'),
nombre = $('nombre'),
email = $('email'),
mensaje = $('mensaje'),
error = $('error'),
correcto = $('correcto');
return regex.test(valor);
}
function estaVacio(valor){
return valor === "";
}
e = e || window.event;
// Evitamos redireccionar
if( typeof e.preventDefault === 'function'){
e.preventDefault()
} else {
e.returnValue = false;
}
return false;
}
if( window.ActiveXObject ){
try{
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch(ex){
alert("Usas un navegador demasiado antiguo (IE5), actualzalo para poder
desfrutar de la web")
return null
}
}
return new window.XMLHttpRequest();
}
/*
$mensaje = preg_replace('/\n/','<br>',urldecode($_POST['mensaje']));
$nombre = urldecode($_POST['nombre']);
$email = urldecode($_POST['email']);
$fecha = date('c');
$titulo = "Nuevo mensaje de $nombre desde el formulario de contacto";
// El mensaje
$data = "
<html><head>
<title>$titulo</title>
<meta name='viewport' content='width:device-width,initial-scale=1'>
<style>
body{
font-family:Arial,Helvetica,sans-serif;
background: #eee;
color: #333;
}
.mensaje {
width: 100%;
max-width: 650px;
background: #fff;
border: 1px solid #ccc;
margin: 2em auto;
padding: 2em;
} </style>
</head>
<body>
<div class='mensaje'>
<h1>Nuevo mensaje de $nombre</h1>
<p><strong>Fecha:</strong> $fecha</p>
<p><strong>Mensaje:</strong><br>$mensaje</p>
<p><strong>Email:</strong> <a href='mailto:$email'>$email</a></p>
</div>
</body></html>";
Si tenis problemas con la llegada de los mensajes (probad un par de veces insertando en
el formulario emails distintos), echadle un ojo a este comentario.