Duda validación formulario
Hola, estoy haciendo un favor a un conocido y el problema que tengo es que no se validarle un formulario que le hice, para que cuando no se rellene un campo, pues este formulario no se mande y lo avise. La verdad que no tengo idea de Php lo que he conseguido ha sido a través de leer y modificar código. Necesitaría que alguien me echase una mano con ello, y que esta mano no sea al cuello please. a continuación os pongo el código, tanto del html como del pho
HTML donde esta el formulario
<div id="contenido_contacto_formulario">
<form action="enviar.php" method="POST" id="miformulario">
<table width="540">
<tr>
<td width="70"><label for="nombre">Nombre</label></td>
<td width="152"><input type="text" name="nombre" id="nombre" /></td>
<td width="69"><label for="ciudad">Ciudad</label></td>
<td width="241"><input type="text" name="ciudad" id="ciudad" /></td>
</tr>
<tr>
<td><label for="email">Email</label></td>
<td><input type="text" name="email" id="email" /></td>
<td><label for="cp">Dirección</label></td>
<td><input type="text" name="cp" id="cp" /></td>
</tr>
<tr>
<td><label for="telefono">Telefono</label></td>
<td><input type="text" name="telefono" id="telefono" /></td>
<td><label for="servicio">Servicio</label></td>
<td><select name="servicio" id="servicio">
<option value="Limpieza">Limpieza</option>
<option value="Jardinería">Jardinería</option>
<option value="Reformas">Reformas</option>
</select></td>
</tr>
<tr>
<td><label for="asunto"> Asunto</label></td>
<td colspan="3"><textarea name="asunto" cols="50" rows="3" id="asunto"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Enviar" id="Enviar" value="Enviar" /></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</div>
PHP enviar
<?php
$para= "xxxxx@gmail.com";
$asunto= "Consulta emviada desde su web";
$email = $_POST['email'] ;
$nombre = $_POST['nombre'] ;
$telefono = $_POST['telefono'] ;
$ciudad = $_POST['ciudad'];
$cp = $_POST['direccion'] ;
$servicio = $_POST['servicio'] ;
$mensaje = "----------------------------------------------------------------------------\n
Email: $_POST[email]\n
Nombre: $_POST[nombre]\n
Telefono: $_POST[telefono]\n
Ciudad: $_POST[ciudad]\n
Direccion: $_POST[cp]\n
Servicio: $_POST[servicio]\n
Asunto: $_POST[asunto]\n
----------------------------------------------------------------------------\n
";
mail ($para, $asunto, $mensaje, "Form:$remintente");
echo 'Su mensaje ha sido enviado. Muchas Gracias por su confianza';
Muchas gracias antes de nada
raul_garcia
Aqui te dejo toda la explicaion, perdoname de nuevo que esto esta haciendo cosas raras.
La validacion del formulario la tienes que hacer mediante javascript, comprobara todos los campos antes de enviarlo.
Yo utilizo Jquery (un framework de javascript) y validate.js, es muy facil de usar y no necesitas tener mucha idea de javascript, solo añadirlo en el head, hacer la llamada a la funcion y ponerles una clase especifica a los campos que quieras validar. Te dejo los enlaces a Jquery y a validate.js:
Jquery
http://code.jquery.com/jquery-1.7.1.js
validate.js
http://jzaefferer.github.com/jquery-validation/jquery.validate.js
Te dejo tambien la pagina de Jquery donde puedes verlo en accion, despues es muy facil de modificar el estilo de los mensajes (color y posicion por ejemplo) con css e incluso cambiar los mensajes de error (para eso tendras que editar el archivo jquery.validate.js y buscar la palabra "messages:" donde se pueden especificar cada mensaje de error).
http://docs.jquery.com/Plugins/Validation
Para los campos que quieras validar le tendras que poner la clase "required" y si se trata de un mail "required email".
Tu head tendria que ser asi: (te dejo los enlaces absolutos a los .js pero yo te aconsejo que te los bajes para modificar los mensajes de error y poder usarlo en otro proyecto.)
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#miformulario").validate();
});
</script>
</head>
Y con esto te tendria que funcionar, espero que te sirva de ayuda.
Un saludo
raul_garcia
Perdoname pero se me han colado dos punto y coma cuando enlazas a las librerias javascript, logicamente no lo llevan, sorry.
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>