Foros del Web » Programación para mayores de 30 ;) » Programación General »

getelementbyid se detiene

Estas en el tema de getelementbyid se detiene en el foro de Programación General en Foros del Web. ONecesito un poco de teoria chiquita.... Al hace run FOr con getelementbyid, no tengo problema alguno para capturar los valores de un formulario...pero.... el problema ...
  #1 (permalink)  
Antiguo 11/01/2010, 20:27
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
getelementbyid se detiene

ONecesito un poco de teoria chiquita....

Al hace run FOr con getelementbyid, no tengo problema alguno para capturar los valores de un formulario...pero....

el problema esta cuando se salta un ID como numeracion...

EJ:
tengo los siguientes IDs
P5C01 con value = a1
P5C02 con value = a2
P5C03 con value = a3
P5C04 con value = a4
P5C05 con value = a5
P5C08 con value = a6
P5C09 con value = a7


si se fijan no existe ID P5C06 ni P5C07

Todo corre bien hasta que llega al P5C08, ya que le falta la correlatividad del pc506, por lo que sale solo esta lista:

= a1
= a2
= a3
= a4
= a5


y hasta ahi llega....cuando yo necesito que salga hasta el valor a6 y a7 del P5C08 y p5C09...pero no los lee....

La instruccion que tengo es esta:

Código PHP:
for i=1 to 100 step 1
IF document.getElementById("P5C1" & [i]) > "" THEN
wb
.Activesheet.cells(i,2).value document.getElementById("P5C1" & [i]).value
END 
IF 
sabra agluien por que se detiene?....o tambien ¿como se soluciona para que lea los valores del resto de IDS' o en su defecto asocie los valores de IDs que no existen en el formulario a un simple cero de tal forma que quede asi:?

= a1
= a2
= a3
= a4
= a5
= 0
= 0
= a7
= a8




gracias

luque
  #2 (permalink)  
Antiguo 11/01/2010, 20:30
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: getelementbyid se detiene

solo una aclaracion: en el codigo dice P5C1, pero da lo mismo, porque esta secuencia esta desde el 10 en adelante....
  #3 (permalink)  
Antiguo 13/01/2010, 20:30
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: getelementbyid se detiene

Un coordial saludo. Una aclaratoria el código se tituló como php y en realidad es código javascript.

document.getElementById() es una funcion que debe encontrar el campo con el "id" que se inserta como parámetro de lo contrario el script se detiene. Tambien puede ser que existan dos campos con el mismo id pero no parece ser tu caso. Lo que normalmente se hace es

encerrar el comando en una estructura try catch de tal manera que se controle el error y pueda seguir el script.
ejemplo:

try{ var aux = document.getElementById('valorCampo'); }
catch(err)
{ var aux=0; }

Te explico lo que sucede aqui: try "intentar" intenta asignar a aux el valor del campo cuyo id se denomina valorCampo. Si la asignacion no presenta ningun error simplemente todo acabo alli pero si se captura un error "catch(err)" entonces se le asigna a la variable auxiliar 0. Pienso que si usar try catch en tus asignaciones no debes de tener problemas.

Otra cosa ese bucle "for" que usas va hasta el i= 100 y luego lo concatenas con el texto. ese bucle es ideal si tienes esos cien campos. sino hay otras maneras mucho mas eficientes de recorrer los campos de un formulario..

Espero te haya servido de ayuda. Este texto esta referenciado en mi página personal http://tunuevosistema.com/?q=es/node/12
  #4 (permalink)  
Antiguo 16/02/2010, 13:15
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: getelementbyid se detiene

hola


gracias por la respuesta....es muy instructiva...

dentro de la respuesta culminas diciendo que se puede obtener de otras formas sin tener que hacerlo como yo lo hago...¿tendras un ejemplo de ello?
por favor?
Gracias

Luque
  #5 (permalink)  
Antiguo 16/02/2010, 13:20
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: getelementbyid se detiene

ah una cosa mas....puede ser en vbscript tambien...

Etiquetas: detiene, getelementbyid
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:18.