Foros del Web » Programando para Internet » Javascript »

Ir almacenando en arrays

Estas en el tema de Ir almacenando en arrays en el foro de Javascript en Foros del Web. Hola , la verdad es que llevo dias y no lo saco, por otro lado me he liado con cookies, etc, necesito ayuda para comprenderlo, ...
  #1 (permalink)  
Antiguo 04/05/2010, 12:29
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Ir almacenando en arrays

Hola , la verdad es que llevo dias y no lo saco, por otro lado me he liado con cookies, etc, necesito ayuda para comprenderlo, ya que me encuentro ya obcecado y no ceo nada,

El tema es ir almacenando en arrays datos tipo agenda telefonica (nombre, apellido, etc) , irlos almacenando y luego mostrarlo en pantalla,

El código del que parto es el siguiente:

function validacion(formulario) {
nombre = new Array();
apellidos = new Array();
empresa= new Array();
email= new Array();
web= new Array();
contador = new array();

if ((formulario.nombre.value == "") || (formulario.apellidos.value == "") || (formulario.empresa.value == "") || (formulario.email.value == "") || (formulario.web.value == "") || (formulario.telefono.value == "")){
alert ("No puede dejar ninguno de los campos vacios");
return false
}
else{
if (Nombre.length != 0){
for (contador = 0; contador < Nombre.length; contador++){
if (formulario.nombre.value == persona.nombre[contador] && formulario.apellidos.value == persona.Apellidos[contador]){
alert("Lo siento pero ese nombre ya está cogido");
break;
return false;
}
}
}
}
nombre[nombre.length]=formulario.nombre.value;
apellidos[apellidos.length]=formulario.apellidos.value;
empresa[empresa.length]=formulario.empresa.value;
email[email.length]=formulario.email.value;
web[web.length]=formulario.web.value;
telefono[telefono.length]=formulario.telefono.value;
return true
}

function imprime () {
document.writeln(contador + nombre + apellidos + empresa + email + web) ;
}
</script>
html:

<body>
<form name="formulario">
<li>Nombre: <input type="text" name="nombre" id="nombre" size="25"></li>
<li>Apellidos: <input type="text" name="apellidos" id="apellidos" size="51"></li>
<li>Empresa: <input type="text" name="empresa" id="empresa" size="25"></li>
<li>Email: <input type="text" name="email" id="email" size="20"></li>
<li>Web: <input type="text" name="web" id="web" size="20"></li>
<li>Telefono: <input type="text" name="telefono" id="telefono" size="9"></li>
<input type="button" value="Añade a la Agenda" onClick="validacion(formulario)">
<input type="button" value="Muestra agenda" onClick="imprime(formulario)">

</form>
</body>

Lo que intento hacer, es mirar si queda algun campo en blanco, si aparte de esto ya está almacenado el mismo nombre y apellido , si no añadirlo y un boton para mostrar la lista de los contactos, pero, me he quedado encallado, no paso las variables del formulario al js.

Gracias,
  #2 (permalink)  
Antiguo 04/05/2010, 12:57
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ir almacenando en arrays

creo que te hace falta repasar los conceptos basicos acerca del lenguaje en si. ire parte por parte segun notando los problemas.
  • los nombres de identificadores (nombres para variables y funcion) son sensible a mayusculas y minusculas. no es lo mismo Nombre que nombre.
  • las variables no inicializadas generan error cuando se utilizan. por ejemplo, ¿donde esta inicializada tu variable persona?
  • dos o mas entidades con el mismo identificador sobreescribe el uno al otro. es decir, si tengo un array contador y luego defino la variable contador, este ultimo sobreescribira al primero. tu caso es como lo expuse aqui, tienes un array contador y luego en un bucle defines la variable contador = 0.
  • fijate donde defines las variables. si la variable la inicias dentro de una funcion, cada vez que la invoques resultara en una nueva inicializacion. por ejemplo, las variables nombre, apellidos, empresa, email, entre otras mas estan definido dentro de la funcion validacion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 04/05/2010 a las 13:02
  #3 (permalink)  
Antiguo 04/05/2010, 13:29
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Ir almacenando en arrays

Gracias por tu respuesta, soy novato en esto y con el tema de las variables en array me pierdo,
He modificado parte del código siguiendo tus observaciones y lo único que me queda en duda, es la variable contador, como la guardo en una variable global, para que me muestre el resultado
0 nombre ...........
1 nombre ...........

Ya que ahora me queda intercalado y suponco que es por el tema variable contador.
nombre,nombre1,apellido,apellido1, etc....

Pongo el nuevo código,

Saludos,

// JavaScript Document
nombre = new Array();
apellidos = new Array();
empresa= new Array();
email= new Array();
web= new Array();
Contador = new Array();
function validacion(formulario) {
if ((formulario.nombre.value == "") || (formulario.apellidos.value == "") || (formulario.empresa.value == "") || (formulario.email.value == "") || (formulario.web.value == "") || (formulario.telefono.value == "")){
alert ("No puede dejar ninguno de los campos vacios");
return false
}
else{
if (nombre.length != 0){
for (contador = 0; contador < nombre.length; contador++){
if (formulario.nombre.value == nombre[contador] && formulario.apellidos.value == apellidos[contador]){
alert("Lo siento pero ese nombre ya está cogido");
break;
return false;
}
}
}
}
nombre[nombre.length]=formulario.nombre.value;
apellidos[apellidos.length]=formulario.apellidos.value;
empresa[empresa.length]=formulario.empresa.value;
email[email.length]=formulario.email.value;
web[web.length]=formulario.web.value;
telefono[telefono.length]=formulario.telefono.value;
return true
}

function imprime () {
document.writeln(contador + nombre + apellidos + empresa + email + web) ;
}
  #4 (permalink)  
Antiguo 04/05/2010, 13:42
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ir almacenando en arrays

de por si la variable contador es global porque no se esta iniciando con el keyword var. para asignar el conteo al array Contador, obtienes la longitud del mismo array y se lo asignas.
Contador[Contador.length] = Contador.length;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 04/05/2010, 14:04
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Ir almacenando en arrays

Gracias por anticipado por tu tiempo, dudas: está funcionando, pero el documento writeln , me está mostrando la informacion así:

ultimo contador por ejemplo 2 ,abc,abc,abc,etc. , para que me lo muestre de la siguiente manera ordenado:
0,a,a,a,a,a
1,b,b,b,b,b
2,c,c,c,c,c

Que tendría que hacer algun tipo de mientras contador sea >0 y < que contador.length document writeln, contador,nombre,etc...

Saludos,
  #6 (permalink)  
Antiguo 04/05/2010, 14:10
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ir almacenando en arrays

tienes que escribir tu codigo para que quede en el formato que desees. basicamente otro bucle for controlado por uno de los arrays, puede ser cualquiera ya que todos tienen la misma longitud. entonces, vas leyendo he imprimiendo en cada iteracion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 04/05/2010, 14:40
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Ir almacenando en arrays

Lo siento pero no lo pillo, pongo lo siguiente:
for ( x = 0; x < contador.length; x++ ){
document.writeln(contador + nombre + apellidos + empresa + email + web) ;
}

Por lo que he entendido ,con el for, le digo que x = 0 , mientras sea menor que el valor contador.length , escriba la linea y sume a x 1 hasta llegar al mismo valor que contador, pero no funciona, que me estoy dejando,

Gracias por tu tiempo,
  #8 (permalink)  
Antiguo 04/05/2010, 14:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ir almacenando en arrays

con la variable x indicas la posicion del array que deseas imprimir. o sea, contador[x]. y asi con los demas arrays.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 04/05/2010, 14:54
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Ir almacenando en arrays

Lo siento Zerokilled, aquí ya me quedé atascado, no entiendo si ya estoy controlando que vaya sumando hasta igualar a contador, que es lo que tengo que hacer con los otros arrays ??

Saludos y gracias,
  #10 (permalink)  
Antiguo 04/05/2010, 15:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ir almacenando en arrays

como te indique, con la variable de iteracion (variable x) vas a indicar la posicion a imprimir. tal como lo tienes dentro de writeln, estas indicando imprimir todo el array de una vez. pero no es lo que quieres. entonces, a todos los arrays que estan dentro de writeln le agregas al final [x].
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 04/05/2010, 15:26
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Ir almacenando en arrays

Al fin, gracias, funcionando y me has hecho discurrir el coco, que es como se debe hacer, gracias por las pistas, la verdad es que me pierdo con el tema variables,

Saludos,
  #12 (permalink)  
Antiguo 14/05/2010, 16:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 153
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Ir almacenando en arrays

Compañero quiciera que me colaboraras con algun script que este funcionando con esto de los arrays de lo agradeceria mucho.

Etiquetas: arrays
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:52.