Foros del Web » Programando para Internet » Javascript »

mismo getElementById en varias celdas??

Estas en el tema de mismo getElementById en varias celdas?? en el foro de Javascript en Foros del Web. hola, bueno tengo un codigo muy extenso, llevo un buen lio, ya lo sabeis Tengo 6 tests, los cuales cuando se van resolviendo aparece su ...
  #1 (permalink)  
Antiguo 18/02/2006, 07:07
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
Pregunta mismo getElementById en varias celdas??

hola, bueno tengo un codigo muy extenso, llevo un buen lio, ya lo sabeis

Tengo 6 tests, los cuales cuando se van resolviendo aparece su puntuacion al final de cada uno mediante una funcion que envia el resultado a unas celda mediante:
Código:
	function getPuntuacion(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);
			}
		}
		alert(caixa);
	}
"total"+i da como resultado total1, total2, total3, etc...
luego puedo ir sacando los resultados parciales con alerts ejecutandolos con botones asi (lo hice para probar que funcionara) y funciona:
Código:
<input type="button" onClick="getPuntuacion(1)" value="1">
<input type="button" onClick="getPuntuacion(2)" value="2">
<input type="button" onClick="getPuntuacion(3)" value="3">
<input type="button" onClick="getPuntuacion(5)" value="4">
<input type="button" onClick="getPuntuacion(5)" value="5">
<input type="button" onClick="getPuntuacion(6)" value="6">
ahora bien, lo que necesito es que ese mismo resultado que va a parar a total1, total2, etc... y que puedo sacar con los "alert" se escriba tambien en otras celdas con otro id sin tener que usar botones(los botones eliminarlos, que no salgan alerts).

que se escriban en estas celdas directamente sin usar botones ni nada!!!

seria algo asi, quitar los botones y el alert y que salga aqui el resultado, aunque esto no funciona:
Código:
<td id="p1"><script>document.write(getPuntuacion(1))</script></td>
<td id="p2"><script>document.write(getPuntuacion(2))</script></td>
<td id="p3"><script>document.write(getPuntuacion(3))</script></td>  
<td id="p4"><script>document.write(getPuntuacion(4))</script></td>
<td id="p5"><script>document.write(getPuntuacion(5))</script></td>
<td id="p6"><script>document.write(getPuntuacion(6))</script></td>
osea que el mismo resultado que sale en las celdas total1, total2, etc... se escriba tambien a la vez en las celdas p1, p2, etc...

como hago eso????

gracias y un saludo!!!
__________________
jorcri...

Última edición por jorcri; 18/02/2006 a las 08:12
  #2 (permalink)  
Antiguo 18/02/2006, 09:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
bueno mas o menos lo he resuelto, he duplicado la funcion cmbiando su nombre y dandole al boton que ejecute todas a la vez y las envie a una celda asi:

Código:
		//saca los totales en un alert
		function totales(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}

		alert(total);

	}
	//funciones envian a las celdas los resultados
	//resultado test1
	function getPuntuacion1(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}
		//muestra el resultado del test1 en la celda p1
		document.getElementById("p1").innerHTML=caixa;
	}
		//resultado test2
		function getPuntuacion2(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}
		//muestra el resultado del test2 en la celda p2
		document.getElementById("p2").innerHTML=caixa;
	}
		//resultado test3
		function getPuntuacion3(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}
		//muestra el resultado del test3 en la celda p3
		document.getElementById("p3").innerHTML=caixa;
	}
		//resultado test4
		function getPuntuacion4(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}
		//muestra el resultado del test4 en la celda p4
		document.getElementById("p4").innerHTML=caixa;
	}
		//resultado test5
		function getPuntuacion5(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}
		//muestra el resultado del test5 en la celda p5
		document.getElementById("p5").innerHTML=caixa;
	}
		//resultado test6
		function getPuntuacion6(ntests)
	{
		var total=0;
		for (var i=1; i<=ntests; i++)
		{
			var caixa=document.getElementById("total"+i).innerHTML;
			if (caixa!="") {
				total+=parseInt(caixa);

			}
		}
		//muestra el resultado del test6 en la celda p6
		document.getElementById("p6").innerHTML=caixa;
	}
y en los botones he asignado esto:
Código:
  <input type="button" onClick="getPuntuacion1(1);getPuntuacion2(2);getPuntuacion3(3);getPuntuacion4(4);getPuntuacion5(5);getPuntuacion6(6);" value="envia resultados">
  <input type="button" onClick="totales(6)" value="saca el total">
lo que es una barbaridad de codigo, no podria simplificarse??? y eliminar el boton que ejecuta las 6 funciones, por algo que se fueran escribiendo ellas solas en las celdas y no mediante el evento onclik???

gracias de nuevo!!!
__________________
jorcri...
  #3 (permalink)  
Antiguo 18/02/2006, 09:43
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
por lo que veo, dices que los resultados estan en celdas y que de allí los obtienes(total1,total2,total3,...).

Si a esas celdas llegan dinámicamente(o sea que lo incertas con otro script en JS) sería el momento óptimo para ademas asignárselos a otra celda adicional (si es así bastaría con una sola linea de código).

luego de todo esto, lo que comentas viene a relacion de este tema???

si es así, la solución podría ser bastante simple.
__________________
by Capitán Buscapina
.
  #4 (permalink)  
Antiguo 18/02/2006, 10:43
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
Cap.Buscapina eres mi idolo xD

si, viene de ese tema, si mas o menos como comentas,

extraemos el valor mediante la funcion y luego ese valor es enviado a las celdas que son creadas dinamicamente asignandose automaticamente sus "id" dependiendo de los test creados, osea, 6 test pues habra 6 celdas con id= total1, total2, etc..., lo que quiero es que en vez de enviar esos resultados a esas celdas se envie tambien a otras celdas, pero con una diferencia, que a las segundas celdas que tienen que ir ya tienen un "id" asignado.

gracias de nuevo!!!
__________________
jorcri...
  #5 (permalink)  
Antiguo 18/02/2006, 11:14
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
te respondo en el otro tema, así no nos llaman la atención
__________________
by Capitán Buscapina
.
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 19:30.