Foros del Web » Programando para Internet » Javascript »

almacenar entradas desde input en un array

Estas en el tema de almacenar entradas desde input en un array en el foro de Javascript en Foros del Web. Buenas noches, estoy como loco intentando almacenar entradas sucesivas que se generan en un único campo de texto con nombre 'usuario' en un array. En ...
  #1 (permalink)  
Antiguo 03/12/2008, 14:37
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 0
almacenar entradas desde input en un array

Buenas noches,
estoy como loco intentando almacenar entradas sucesivas que se generan en un único campo de texto con nombre 'usuario' en un array.
En un principio pensaba que sería sencillo, pero me he atascado en esto.

Lo había planteado así:
Código:
function usuarios(){
var valorNombre = document.nombreFormulario.usuario.value;
var nombre = new Array();
nombre.push(valorNombre);
alert(nombre.length); // esto es para ver si va  se van sumando las entradas
}
La función se la pondría a un botón, con la idea de que a cada entrada en el campo de texto se le dé al botón y se sume al array

html
Código:
<form name="nombreFormulario">
<input type="text" name="usuario"/>
<input type="button" value="mandar" onClick="usuarios();"/>
</form>
me podríais decir en que fallo? como hacerlo?

gracias de antemano y un saludo
  #2 (permalink)  
Antiguo 03/12/2008, 17:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: almacenar entradas desde input en un array

Es que tu variable al colocarle var sólo tiene alcance en la función y se pierde su valor al salir de ésta. Por lo tanto, lo que debes hacer es colocar el var nombre = new Array() fuera de la función, así tendrá alcance mayor y dentro de la función sólo llama al método push().
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 04/12/2008, 02:06
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 0
Respuesta: almacenar entradas desde input en un array

gracias David, tenías razón.

Ahora bien, cuando he almacenado tantas entradas como usuarios quieran en el array, me gustaría poder listarlos dentro de un div de forma independiente.

Esto es, si la función usuarios almacena en el array, ahora llamaría a este array en otra funcioncilla para imprimirlos dentro de un div vacio:

Código:
var nombre = new Array();
function usuarios(){
var valorNombre = document.nombreFormulario.usuario.value;
nombre.push(valorNombre);
alert(nombre.length); // esto es para ver si va  se van sumando las entradas
}

function mostrarUsuarios(){
for (i=0; i<nombre.length; i++){
document.getElementById('div_salida').innerHTML = nombre[i]+'<br>';
}
}
Esta última función se la aplico a otro botón y el div como os digo está creado y vacío. El caso es que de esta forma, solo imprime el último usuario que he creado
y no todos.
Sin embargo, sin pasar por el bucle, si le digo que meta todo el array sí que imprime todos

Tonterías de preguntas ya sé. Pero ahora que estoy empezando, es la leche lo que puedes atascarte con estas historias.

Gracias y un saludo!
  #4 (permalink)  
Antiguo 04/12/2008, 11:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: almacenar entradas desde input en un array

Es que al reemplazar innerHTML a cada paso del bucle, pues... se reemplaza el valor anterior. Por lo que al final, solo queda el último valor del array.

Usa el operador += en lugar de = para concatenar en lugar de pisar el valor anterior.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 04/12/2008, 12:28
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 0
Respuesta: almacenar entradas desde input en un array

Muchas gracias David!!
por supuesto que tiene lógica. Esta pequeña tontería ya no se me olvida!
Gracias de nuevo y un saludo!
  #6 (permalink)  
Antiguo 24/04/2011, 15:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 122
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: almacenar entradas desde input en un array

Hola!

Buscando he encontrado este viejo post que me resuelve una problematica, pero necesito que me elaboren un poco en lo siguiente:

1- Necesito almacenar en el array dos datos, aqui hablan de un dato: usuarios, pero yo necesito dos datos, ejemplo: usuarios, edades

Como manipulo eso?


2- En mi caso necesito pasar ese array via post a otra pagina .php

Como paso el array?


Gracias!
  #7 (permalink)  
Antiguo 24/04/2011, 17:42
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: almacenar entradas desde input en un array

Buenas...
A)
Quizás te sea más útil usar un objeto:
Código Javascript:
Ver original
  1. var obj = { 'propiedad' : 'valor' };
  2. alert(obj.propiedad);
B)
Si los datos los recoges de un formulario, mejor procésalo todo directamente con PHP
C)
Si el tema tiene más de 6 meses abajo del todo hay un cuadro rojo que te insta a abrir uno nuevo y poner un enlace al viejo si es necesario. Probablemente cierren este.

Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 24/04/2011, 23:08
 
Fecha de Ingreso: octubre-2010
Mensajes: 122
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: almacenar entradas desde input en un array

Cita:
Iniciado por _cronos2 Ver Mensaje
Si el tema tiene más de 6 meses abajo del todo hay un cuadro rojo que te insta a abrir uno nuevo y poner un enlace al viejo si es necesario. Probablemente cierren este.
Ooops... no sabia esa! ;)

Bueno, les comento que esta solucion me resulta, hasta cierto punto, finalmente para adaptarla a mi pagina el codigo queda asi:

Código:
var nombre = new Array();
	function usuarios(){ 
	var valorNombre = importe;
	nombre.push(valorNombre);
}

function mostrarUsuarios(){
	for (i=0; i<nombre.length; i++){
	document.getElementById('div_salida').innerHTML += nombre[i]+'<br>';
	}
}

Ahora bien, en mi caso voy registrando valores, ahora bien, en mi proceso de entrada, al lado de cada entrada o linea, tengo una imagen de "eliminar" con una accion "onclick = eliminar;", es decir elimina esa linea, tomando en cuenta esta funcion para newArray, como puedo hacer un proceso de reversion? es decir, que cuando yo elimine una linea tambien lo remueva del array.

Gracias!

P.D.: Incluyo el codigo de la funcion eliminar:

Código:
function eliminar() {
     var parent = this.parentNode;
	 var grandParent = parent.parentNode;
	 importe = parseFloat(parent.childNodes[7].textContent);
	 grandParent.removeChild(parent);
	 deducir = (flete -= importe);
	 deducirCombustible = (resCombustible -= combustible);
	 deducirPortuaria = (resPortuaria -= portuaria);
	 deducirPaqueteria = (resPaqueteria -= paqueteria);
	 document.getElementById('resFlete').value = deducir.toFixed(2);
	 document.getElementById('resCombust').value = deducirCombustible.toFixed(2);
	 document.getElementById('resPortuaria').value = deducirPortuaria.toFixed(2);
	 document.getElementById('resPaqueteria').value = deducirPaqueteria.toFixed(2);
	 
	 actualizar()
	 
}
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 12:05.