Foros del Web » Programando para Internet » Javascript »

Validar formulario

Estas en el tema de Validar formulario en el foro de Javascript en Foros del Web. Hola, no sé si esto va aquí o en ASP, si hay que cambiarlo de sitio, me moveré con el post... Mi problema es el ...
  #1 (permalink)  
Antiguo 07/07/2009, 02:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 24
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación Validar formulario

Hola, no sé si esto va aquí o en ASP, si hay que cambiarlo de sitio, me moveré con el post...

Mi problema es el siguiente. Tengo un formulario en un archivo asp, vinculado a un archivo php que hace de action. El formulario es éste:

Código:
            <form id="form_presupuesto" name="form1" method="post" action="enviar_presupuesto2.php" class="textonoticia">
			

              <legend class="style5">Datos personales&nbsp;</legend>
              <dl>

              <label for="grupo">
              <dt>Nombre de Grupo/Empresa *</label></dt>
              <dd><input name="grupo" type="text"  class="small"/></dd>

              <label for="contacto">
              <dt>Persona de contacto *</label></dt>
              <dd><input name="contacto" type="text"  class="small" /></dd>
              
              <label for="telefono">
              <dt>Tel&eacute;fono *</label></dt>
              <dd><input name="telefono" type="text"  class="small" /></dd>
              
              <label for="mail">
              <dt>E-mail *</label></dt>
              <dd><input name="mail" type="text" class="small" /></dd>

              </dl>
	      * Datos obligatorios



              <input name="borrar" type="reset" id="borrar" value="Borrar" />

	      <input type="submit" name="enviar" id="enviar" value="Enviar" />

            </form>
Mi pregunta es: Cómo puedo validar este formulario para que todos los campos sean obligatorios de rellenar?? Es correcto tener el formulario en un archivo asp y luego vincularlo a uno en php. Que lo tenga así es porque es la única forma que conzco de enviar formularios con pragramación...ains, soy muy pez en esto....

Gracias!!!!
  #2 (permalink)  
Antiguo 07/07/2009, 03:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Validar formulario

Lo que parece raro es hacerlo con asp para luego llamar un php


o lo haces con asp y llamas un asp o en php y llamas un php.... lo otro es complicarse la vida... no?

La validacion la puedes hacer en el cliente con javascript, ocultas el boton de enviar hasta que esten todos los campos llenos, por ejemplo.

O tambien la puedes hacer en el servidor, tanto en php como en asp, en este caso mandas el formulario y el archivo que recibe los datos ha de validar que esten los necesarios/obligatorios y obrar en conseqüencia, es decir, ejecutar el action o pedir al cliente que rellene lo que falta...

Diferencias...


La primera opcion siempre sera mas ràpida puesto que no hay ninguna peticion al servidor hasta que estan todos los datos, pero es menos segura puesto que la validación se hace en el cliente por lo que se podria manipular... a demas pueden tener javascript desactivado... La segunda és mas lenta pero mas segura...

Quim
  #3 (permalink)  
Antiguo 07/07/2009, 03:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 24
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar formulario

Hola quimfv,
te comento por qué lo tengo así.
Mi problema es que no tengo ni idea de casi nada relacionado con la programación, por lo que si una cosa me sale bien, la suelo utilizar siempre.
En este caso, el formulario esté hecho en asp, porque así debe estar, ya que las hojas funcionan por contents dentro del frame y está en asp (esta web la modifico pero no la hice yo).
La validación está hecha con php, porque como te decía, es la manera que sé. Te dejo ese archivo (enviar_formulario.php):

Código:
<?php 
$mail_from=$_POST[mail];
$grupo=$_POST[grupo];
$contacto=$_POST[contacto];
$telefono=$_POST[telefono];
$mail=$_POST[mail];

$mi_mail="[email protected]";
$asunto="Presupuesto";
$mensaje="Te ha llegado un pedido de $grupo con el siguiente presupuesto:\n
Nombre Grupo: $grupo\n
Persona de contacto: $contacto\n
Teléfono: $telefono\n
E-mail: $mail\n


$comentario\n";
mail("$mi_mail","$asunto","$mensaje");
Echo"El formulario ha sido enviado correctamente.";

?>
Lo que quiero es validar que las casillas han sido rellenadas. Si hay otra manera más fácil, soy toda oidos!!!

Gracias!!
  #4 (permalink)  
Antiguo 07/07/2009, 04:09
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Validar formulario

Hola malditairene,
La cuestión es, ¿quiéres una manera de hacerlo con javascript o con asp.net? según lo que te ha comentado quim, necesitarás rapidez o eficacia. quiza lo que necesitas lo vas a usar en un entorno donde sabes que nadie va a desactivar javascript, entonces la solución es un método de validación en javascript de cada campo obligatorio. si por el contrario desconoces si el usuario va a tener o no activado javascript, deberías usar asp.net, y en ese caso deberías de ir al foro de .net.

salu2
  #5 (permalink)  
Antiguo 07/07/2009, 04:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 24
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar formulario

Hola,
pues casi que prefiero rapidez, con javascript. No es un formulario excesivamente importante ni se piden claves ni contraseñas, por lo que ahora mismo lo que necesito es eso.
Una vez elegido, ahora necesitaría vuestra ayuda!!!
  #6 (permalink)  
Antiguo 07/07/2009, 05:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Validar formulario

Hay muchisimas posibilidades...

Ahí va una....


Quim

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
function  valida(){
var error=1;
var vgrupo=document.getElementById("grupo").value;
var vcontacto=document.getElementById("contacto").value;
var vtelefono=document.getElementById("telefono").value;
var vmail=document.getElementById("mail").value;
/*comprobamos que todos tengan algo*/
if (vgrupo.length>0 && vcontacto.length>0 && vtelefono.length>0 && vmail.length>0){
    error=0;
	/* Miramos si el telefono tiene como mínimo 9 digitos*/
	if (vtelefono.length<9 && vtelefono.length>0){
	   error=2;
	   alert("El telefono tiene menos de 9 cifras no parece correcto");
	}
	/* Un email sin @ (indexOf=-1), que empieza por @ (indexOf=0), 
	o termina con @ (indexOf=Largo-1), no es correcto seguro*/
	if (vmail.indexOf("@")<=0 || vmail.indexOf("@")==vmail.length-1){
	   error=3;
	   alert("El mail no es una dirección de correo electrónico correcta");
	}
}
/*Si error es cero mostramos el boton*/
if (error==0){
	document.getElementById("zenviar").style.display="block";
}else{
	document.getElementById("zenviar").style.display="none";
}
}
</script>
</head>
<body>
      <form id="form_presupuesto" name="form1" method="post" action="enviar_presupuesto2.php" class="textonoticia">
			

              <legend class="style5">Datos personales&nbsp;</legend>
              <dl>

              <label for="grupo">
              <dt>Nombre de Grupo/Empresa *</label></dt>
              <dd><input id="grupo" name="grupo" type="text"  class="small" onBlur="valida()"/></dd>

              <label for="contacto">
              <dt>Persona de contacto *</label></dt>
              <dd><input id="contacto" name="contacto" type="text"  class="small" onBlur="valida()" /></dd>
              
              <label for="telefono">
              <dt>Tel&eacute;fono *</label></dt>
              <dd><input id="telefono" name="telefono" type="text"  class="small" onBlur="valida()" /></dd>
              
              <label for="mail">
              <dt>E-mail *</label></dt>
              <dd><input id="mail" name="mail" type="text" class="small" onBlur="valida()" /></dd>

              </dl>
	      * Datos obligatorios<br />



              <input name="borrar" type="reset" id="borrar" value="Borrar" />

	      <span id="zenviar" style="display: none"><input type="submit" name="enviar" id="enviar" value="Enviar" /></span>

            </form>
</body>
</html> 
Numero los errores por si quieres desarrollarlo y actuar de distinta forma en funció del error....

Última edición por quimfv; 07/07/2009 a las 05:30
  #7 (permalink)  
Antiguo 07/07/2009, 05:58
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Validar formulario

Otra (para que tengas donde elegir... :)

En este caso el botón siempre es visible pero no te dejará darle hasta que todos los campos estén cumplimentados (aparece un aviso de qué campo falta por cumplimentar)


<script type="text/javascript">

function validar()
{
//declaramos todos los campos en forma de variables
var grupo = document.getElementById('grupo');
var contacto = document.getElementById('contacto');
var telefono = document.getElementById('telefono');
var mail = document.getElementById('mail');

//comprobamos si alguno de los campos obligatorios están vacíos
if(grupo.value == '' || contacto.value == '' || telefono.value == '' || mail.value == '')
{
//alguno está vacio. Ahora averiguamos por orden cual es y avisamos al usuario
if(grupo.value == '')
{alert('No ha escrito Nombre de Grupo/Empresa');grupo.focus();}
else if(contacto.value == '')
{alert('No ha escrito Persona de contacto');contacto.focus();}
else if(telefono.value == '')
{alert('No ha escrito Teléfono');telefono.focus();}
else if(mail.value == '')
{alert('No ha escrito E-mail');mail.focus();}
}

//si todos los campos están cumplimentados no sale aviso y nos permite continuar
}

</script>
<body>
<form id="form_presupuesto" name="form1" method="post" action="enviar_presupuesto2.php" class="textonoticia">


<legend class="style5">Datos personales&nbsp;</legend>
<dl>

<label for="grupo">
<dt>Nombre de Grupo/Empresa *</label></dt>
<dd><input name="grupo" type="text" class="small"/></dd>

<label for="contacto">
<dt>Persona de contacto *</label></dt>
<dd><input name="contacto" type="text" class="small" /></dd>

<label for="telefono">
<dt>Tel&eacute;fono *</label></dt>
<dd><input name="telefono" type="text" class="small" /></dd>

<label for="mail">
<dt>E-mail *</label></dt>
<dd><input name="mail" type="text" class="small" /></dd>

</dl>
* Datos obligatorios



<input name="borrar" type="reset" id="borrar" value="Borrar" />

<input type="submit" onmouseover="validar()" name="enviar" id="enviar" value="Enviar" />

</form>
</body>

salu2
  #8 (permalink)  
Antiguo 07/07/2009, 05:58
 
Fecha de Ingreso: agosto-2008
Mensajes: 24
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Validar formulario

Vaya tela! No sabes lo que agradezco tu ayuda!!
Muchísimas gracias!!! Funciona a la perfección!
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 11:41.