Foros del Web » Programando para Internet » Javascript »

General campos upload

Estas en el tema de General campos upload en el foro de Javascript en Foros del Web. Hola. Tengo un formulario para subir unos datos, intento que se puedan subir varias imágenes en el servidor, así que se me ocurrio poner un ...
  #1 (permalink)  
Antiguo 18/02/2008, 12:42
 
Fecha de Ingreso: julio-2006
Mensajes: 25
Antigüedad: 17 años, 9 meses
Puntos: 1
General campos upload

Hola.
Tengo un formulario para subir unos datos, intento que se puedan subir varias imágenes en el servidor, así que se me ocurrio poner un select, con opciones del 1 al 5 por ejemplo... al elegir el 3 que aparezcan 3 campos <input type="file" .... /> dentro de un <div id="upload_files"> .... </div>

de momento lo único que consigo es que se agreguen campos, pero no logro eliminaro los que ya se muestran.

El código es este:

Código:
function agregarIMG(select, capa_fotos)
	{
		var capa_fotos = document.getElementById(capa_fotos);
		var nodos_hijos = capa_fotos.getElementsByTagName("input");
		for(var x=0; x < nodos_hijos.length; x++)
		{
			capa_fotos.removeChild(nodos_hijos[x]);
		}
		for(x = 0; x < select.value; x++)
		{
			var nodo=document.createElement("input");
			nodo.type="file";
			nodo.name="foto[]";
			capa_fotos.appendChild(nodo);
		}
	}
y el html es:

Código HTML:
<fieldset><label for="fotos">Fotos: </label>
<select id="fotos" onChange="agregarIMG(this, 'upload_fotos')">
	<option>0</option>
	<option>1</option>
	<option>2</option>
	<option>3</option>
	<option>4</option>
	<option>5</option>
</select>
<div id="upload_fotos">
	<input id="foto" type="file" name="foto[]" />
</div>
</fieldset> 
Son mis primeros pasos "jugando" con el DOM xDD
  #2 (permalink)  
Antiguo 18/02/2008, 13:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: General campos upload

Hola Ariel_Ska

Creo que el problema está en esta línea:

Código:
for(var x=0; x < nodos_hijos.length; x++)
El valor de nodos_hijos.length va cambiando según vas eliminado nodos. He modificado un poco tu código, espero que te sirva:

Código:
    var nodos_hijos = capa_fotos.getElementsByTagName("input");
    var num = nodos_hijos.length;
		for(var x=num-1; x>=0; x--)
		{
			capa_fotos.removeChild(nodos_hijos[x]);
		}
Saludos,
  #3 (permalink)  
Antiguo 18/02/2008, 13:30
 
Fecha de Ingreso: julio-2006
Mensajes: 25
Antigüedad: 17 años, 9 meses
Puntos: 1
Re: General campos upload

Muchisimas gracias! lo acabo de probar y funciona bien de bien, ahora al menos coinciden el número de campos :)

osea que se hace en cuenta regresiva :P

Saludos!!!
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:39.