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. Como puedo validar formulario, he probado con onclick y cn javscript y el php se lo salta y hace lo q le da la gana...
  #1 (permalink)  
Antiguo 09/11/2006, 07:24
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
validar formulario

Como puedo validar formulario, he probado con onclick y cn javscript y el php se lo salta y hace lo q le da la gana
  #2 (permalink)  
Antiguo 09/11/2006, 08:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Veamos.

Lo primero que debes tener claro es que PHP se ejecuta en el "lado del servidor" y javascript en el "lado del cliente".

No tiene nada que ver la validación que hagas con Javascript con la que hagas con PHP .. cada cosa se ejecuta en un lado y momento concreto.

Con PHP tu "generas" la página HTML/con tu javascirpt/CSS ..etc que el "navgegador" (cliente mejor dicho) interpretará.

Si tu quieres validar un "formulario HTML" tienes que decidirte -en que momento- deseas hacer tu validación, por qué puede ser -antes- de que los datos lleguen al script o código PHP de proceso o cuando lleguen a manos de PHP.

Si te decides por "antes" .. ahí usas javascript y esto es muy bueno para dar "usabilidad" a tu aplicación pero no para dar -seguridad-, para dar seguridad usas PHP .. es decir una vez recibido el dato en tu script PHP ahí lo validas por seguridad. Lo que -manda- siempre es la validación que hagas en PHP a efectos de seguridad y confiabilidad.

Por ende .. no entiendo por qué dices "onClick" (un evento que sucede en el "cliente" y es de javascript) y que "PHP se lo salta" y sobre todo que "hace lo que le dá la gana" .. PHP hace lo que tiene que hacer, en tal caso serás tú el que no entiendes el proceso que te acabo de detallar. Conforme lo comprendas más (puedes preguntar dudas al respecto) mejor te irá para enfocar la solución a tus problemas donde corresponda: en el "lado del servidor" (PHP) o en el "lado del cliente" (javascript, HTML .. etc).

Ahora, con esto más "claro" si tu concretas que tipo de validación quieres hacer, mejor será (incluye código si algo tienes hecho).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 12/11/2006, 08:42
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
He probado con este código y me funciona, pero lo he puesto en el archivo de envio, y yo lo que quería es que lo haga en la propia hoja del formulario antes de que pase al archivo de envio, es decir, cuando pulse en enviar del formulario, me haga esto del código pero que salga una ventanita y me lo diga sin cambiar de archivo.

//Cogemos los datos del formulario
$apellido=$_POST['Apellido'];
$nombre=$_POST['Nombre'];
$direccion=$_POST['Direccion'];
$cod_post=$_POST['cod_post'];
$provincia=$_POST['Provincia'];
$localidad=$_POST['Localidad'];
$telefono=$_POST['Telefono'];
$mail=$_POST['mail'];

//Comprobamos que todos y cada uno de los datos NO esten vacios
//foreach ($_POST as $valor) {
// if (empty($valor)) {
// exit ("Has dejado campos por rellenar");
// }
//}
//Comprobamos que el codigo postal sea un numero
if (empty($nombre)) {
exit ("El nombre no esta relleno");
}
//Comprobamos que el codigo postal sea un numero
if (empty($apellido)) {
exit ("El Apellido no esta relleno");
}
//Comprobamos que el codigo postal sea un numero
if (empty($direccion)) {
exit ("El direccion no esta relleno");
}
//Comprobamos que el codigo postal sea un numero
if (empty($provincia)) {
exit ("El provincia no esta relleno");
}
//Comprobamos que el codigo postal sea un numero
if (empty($localidad)) {
exit ("El localidad no esta relleno");
}
//Comprobamos que el codigo postal sea un numero
if (!is_numeric($cod_post)) {
exit ("El código postal debe ser un número");
}
//Comprobamos que el telefono sea un numero
if (!is_numeric($telefono)) {
exit ("El teléfono debe ser un número");
}

//Comprobamos que la direccion email sea valida
if (!ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})",$mail)){
exit ("El e-mail no es valido");
}
  #4 (permalink)  
Antiguo 12/11/2006, 14:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
He probado con este código y me funciona, pero lo he puesto en el archivo de envio, y yo lo que quería es que lo haga en la propia hoja del formulario antes de que pase al archivo de envio, es decir, cuando pulse en enviar del formulario, me haga esto del código pero que salga una ventanita y me lo diga sin cambiar de archivo.
Bueno .. pues eso ya te lo expliqué .. ese comportamiento se soluciona con un lenguaje del lado del -cliente- no del servidor como es PHP. Deja tu validación PHP que has hecho (como seguridad) e implementa las mismas validaciones en javascript por "usabilidad".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 12/11/2006, 16:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
sabes donde puedo encontrarlo, gracias por tu ayuda.
  #6 (permalink)  
Antiguo 12/11/2006, 18:13
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
lo que tu buscas es con javascript echale un ojo a este link

Espero sea lo que buscas, saludos
__________________
Hospedaje Web al mejor costo!
  #7 (permalink)  
Antiguo 13/11/2006, 04:17
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Muchas gracias por el enlace, pero necesito un ultimo apunte, el name de mi formulario es name="<?php echo $v['identificador']?>", como ves una variable de php, y quisiera saber como poner esa variable en el script:

De esta forma no me funciona:

function .'$v['identificador'].'(formobj)

Muchas gracias por todo.
  #8 (permalink)  
Antiguo 13/11/2006, 04:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Antes de nada voy a darte la bienvenida, porque veo que eres nuevo por estos foros

No he podido ver el enlace de urgido (no sé porqué no se abre), pero sobre el nombre del formulario en una validación javascript normalmente puede obviarse...

Las validaciones se hacen (de forma correcta) desde la etiqueta form, usando el manejador onsubmit, al cual le puedes pasar el propio formulario como parámetro y el nombre no tendría importancia.
<form onsubmit="return Validar(this)"...
Y en la función de validación, tan solo debes usar el parámetro que tenga la función, seguido del campo que tengas que validar para poderlo referir (con un punto intermedio...

function Valirad(f) {
...
return (f.nombre.value != "");
...

Bueno, supongo que moverán el tema y en el foro javascript podremos seguir con el tema.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 17:26.