Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/01/2013, 12:11
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: validación formulario

Aclaremos algunos conceptos,
cuando envías un form html tradicional, acción a la que se denomina "submit", estás pasando los valores de todos aquellos campos que contengan un "name" a una url que está definida en el atributo "action"
Código HTML:
Ver original
  1. <form action="x.php" method="post">
  2. <input type="text" name="nombre" value="" />
  3. <input type="submit" name="procesar" value ="enviar" />
  4. </form>

hasta ahi, nada de javascript, al presionar enviar, el texto ingresado en nombre se pasa a x.php y es recibio por esta como $_POST['nombre'];

A veces necesitamos que los valores ingresados sean validados contra una serie de requisitos (cantidad de caracteres, formato de un email, que el valor si es numérico no sea > ó <, etc). hay tres formas de validar
a través de javascript
en el servidor (php en nuestro caso)
ó una forma mixta (javascript y php), generalmente se usa ajax para esto.

La primera es completamente insegura y fácil de violar por el cliente, pero bueno ese es otro tema.

Vayamos de todas maneras a un ejemplo de la primera aplicada al form anterior

Código HTML:
Ver original
  1. <form action="x.php" method="post" onsubmit="return validar();">
  2. <input type="text" name="nombre" id="nombre" value="" />
  3. <input type="submit" name="procesar" value ="enviar" />
  4. </form>

y nuestra funcion validar (muy simplificada)

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function validar(){
  3. var elNombre = document.getElementById('nombre');
  4. if(elNombre.value == ""){
  5. alert('falta nombre');
  6. return false;
  7. }
  8. }
  9. </script>

Esto significa que cuando hacés el submit del form(de paso te aclaro que dentro de un form los únicos que hacen submit en forma natural son el <input type="submit"> y el <button>enviar</button>, no asi el <input type="button">) se espera que nuestra función devuelva algo, por eso lo de "return validar();" y no solo "validar();"
Si devuelve false porque no se cumple alguna condición requerida, entonces el submit se cancela. si no el submit sigue su curso y te dirije al x.php del action.

Si el código que pusiste funciona o no, no es posible saberlo sin ver el html completo
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.