Ver Mensaje Individual
  #8 (permalink)  
Antiguo 17/06/2005, 12:30
Avatar de [ EDO ]
[ EDO ]
 
Fecha de Ingreso: julio-2004
Ubicación: Quilpué, V Región, Chile
Mensajes: 98
Antigüedad: 19 años, 8 meses
Puntos: 0
Mmmmm...

Ya te dije que la funcíon sólo comprueba que se escriba algo en los campos de texto nombre, correo, pais y comentario, puede ser cualquier cosa. La función obliga a que los campos no estén vacios. Y claro que son compos de introducción!, si de eso estamos hablando, NO?

"mensaje" es una variable cualquiera, si quieres puede ser el nombre de var de un campo de texto dinámico. Tú sabrás como lo utilizas.
Yo ocupé "mensaje" por que todos los script que hemos usado como ejemplo tienen esa variable como respuesta y sólo seguí la misma línea. Esperaba que esto se entendiera.

El comando return sirve para detener una función y para enviar un valor de vuelta si hace falta. Al ejecutarse el comando return, todo lo que esté después se anula. En este caso no hace falta enviar un valor de vuelta pero yo siempre lo hago por buena costumbre nada más. Pero si hace falta detener la función si algun campo se encuantra vacío.

En la función hay 4 if, cada uno comprueba si está vacío dicho campo, y si está vacío asigna un texto de error a la variable "mensaje" y detiene la funcíon.
Si los 4 campos no se encuentran vacíos, entonces la funcíon llega hasta el final y asigna un texto de bienvenida a la variable "mensaje". Al final tambien hay un return, pero perfectamente se puede prescindir de él.

También quieres que al comprobar los campos, si están todos ok, te envíe a una url. Bastaría con colocar la acción de Action Script para URLs al final de la función tambien.
La función quedaría así:

Código PHP:
function comprobarCampos () {
if (
nombre == "") {
mensaje "No se ha escrito nada en el campo nombre";
return 
false;
}
if (
correo == "") {
mensaje "No se ha escrito un correo";
return 
false;
}
if (
pais == "") {
mensaje "No se ha definido un pais";
return 
false;
}
if (
comentario == "") {
mensaje "No se ha escrito ningún comentario";
return 
false;
}
mensaje "Bienvenido";
getURL("http://www.forosdelweb.com");
return 
true;

Tu codigo puede que te funcione, pero está poco optimizado (es mucho codigo sólo para dos campos) y además tiene un grave error: sólo la última condición if es la que decide si está todo correcto. Me explico, bastaría con que yo coloque la contraseña sólamente para que me de la bienvenida, por eso lo tienes que hacer con una fúnción. Dentro de una función es la única forma que puedes hacer que un script se detenga.
Aquí tienes la misma función, pero comprobando que el campo nombre contenga ciertos valores específicos:

Código PHP:
function comprobarCampos () {
 if (
nombre != "usu_1" && nombre != "usu_2" && nombre != "usu_3") {
  
mensaje "El nombre es incorrecto";
  return 
false;
 }
 if (
correo == "" || correo == undefined) {
  
mensaje "No se ha escrito un correo";
  return 
false;
 }
 if (
pais == "" || pais == undefined) {
  
mensaje "No se ha definido un pais";
  return 
false;
 }
 if (
comentario == "" || comentario == undefined) {
  
mensaje "No se ha escrito ningún comentario";
  return 
false;
 }
 
mensaje "Bienvenido";
 
getURL("http://www.forosdelweb.com");
 return 
true;

Fíjate en el operador de la primera condición. El signo ! significa negación, y combinado de esta forma != quiere decir "no es igual". Entonces el primer if pregunta de esta forma:

Si el campo de texto nombre NO ES IGUAL A "usu_1" Y NO ES IGUAL A "usu_2" Y NO ES IGUAL A "usu_3"... Se envía el mensaje error y se detiene la función.

La idea es que tú adaptes y modifiques el código a tu conveniencia dependiendo de tus requerimientos. Es difícil entender el tema de los operadores cuando se está empezando, espero que esté más claro ahora.
__________________
EDO