Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/04/2003, 19:14
Avatar de Seerkan
Seerkan
 
Fecha de Ingreso: febrero-2001
Mensajes: 61
Antigüedad: 23 años, 9 meses
Puntos: 0
[Resuelto] Fallo en Script "crear select", ¿donde?

Hola compañeros,

con mis basicos conocimientos de Javascript y gracias a la gran ayuda que he encontrado en este Foro (como siempre ), he creado un script para que el usuario que se va a registrar eliga su nick de una lista creada en función de sus nombres y apellidos.

Bueno, seguro que no me he explicado demasiado bien . Mejor os pongo el codigo y luego sigo comentando.

Código PHP:
<html>
<
head>
    
<
SCRIPT LANGUAGE="JavaScript">
<!-- 
Begin

function createUsername()
{
arrayName = new Array(4);
arrayName[1] = this.form.user_name.value;
arrayName[2] = this.form.user_name2.value;
arrayName[3] = this.form.user_lastname.value;
arrayName[4] = this.form.user_lastname2.value;
1;
this.form.username.options[i]=new Option(arrayName[1] + arrayName[3], arrayName[1] + arrayName[3]);
i++;
this.form.username.options[i]=new Option(arrayName[1] + "_" arrayName[3], arrayName[1] + "_" arrayName[3]);
i++;
if (
arrayName[2] != "")
    { 
        
this.form.username.options[i]=new Option(arrayName[1] + arrayName[2] + arrayName[3], arrayName[1] + arrayName[2] + arrayName[3]);
        
i++;
        
this.form.username.options[i]=new Option(arrayName[1] + "_" arrayName[2] + "_" arrayName[3], arrayName[1] + "_" arrayName[2] + "_" arrayName[3]);
        
i++;
        
this.form.username.options[i]=new Option(arrayName[1] + arrayName[2] + "_" arrayName[3], arrayName[1] + arrayName[2] + "_" arrayName[3]);
        
i++;
    }
this.form.username.options[i]=new Option(arrayName[3] + arrayName[4], arrayName[3] + arrayName[4]);
i++;
this.form.username.options[i]=new Option(arrayName[3] + "_" arrayName[4], arrayName[3] + "_" arrayName[4]);


this.form.username.disabled=false;
}

//  End -->
 

 
-->
</script>
</head>
<body>
<br>&nbsp;<br>&nbsp;<br>&nbsp;
<div align="center">

<form name="form">
Nombre 1º: <input type="text" name="user_name" size="30" value="Antonio" ><br>&nbsp;<br>
Nombre 2º: <input type="text" name="user_name2" size="30" ><br>&nbsp;<br>
Apellido 1º: <input type="text" name="user_lastname" size="30" value="Garcia" ><br>&nbsp;<br>
Apellido 2º: <input type="text" name="user_lastname2" size="30" value="Ramirez" ><br>&nbsp;<br>&nbsp;<br>
<input type="button" value="Crear:" onClick="createUsername();">
<select name="username" disabled >
<option value="0">Elige Nombre de Usuario:</option></select><br>&nbsp;<br>
</form>

</div>
</body>
</html> 
La idea es que el "nombre 2º" no sea obligatorio rellenarlo, por lo que si deja en blanco no se muestren las opciones que lo contienen:
Código PHP:
if (arrayName[2] != "")     { (...) 
Pero tiene un Fallo :
Si primero pruebas a rellenar el campo "nombre 2º" y creas los nicks, luego aunque borres ese campo al crear los nicks sigue saliendo en una de las opciones!!!

¿no me explico bien?

Bueno, para ver el fallo:
1.- Rellena todos los campos, incluido el "nombre 2º"
2.- Pulsa "Crear nicks" y veras que en tres de las opciones aparece el texto de "nombre 2º"
3.- Ahora borra el campo "nombre 2º" y pulsa "Crear nicks" de nuevo.
4.- Verás como en el menu desplegable sigue saliendo el valor del campo "nombre 2º" a pesar de haberlo borrado!!!


¿donde está el fallo ?

Muchisimas gracias por leer este mensaje entero, y mil gracias por intentar ayudarme.

Cualquier pista o comentario me serian de gran ayuda, gracias.

Un saludo a todos desde Alicante (España)

Ciao.

Última edición por KarlanKas; 10/04/2003 a las 14:10