Foros del Web » Programando para Internet » Javascript »

Nombres de campo con variable

Estas en el tema de Nombres de campo con variable en el foro de Javascript en Foros del Web. Apreciados todos, estoy haciendo una pequeña aplicación parte en Javascript y parte en ASP. Esta aplicación genera una tabla con filas y columnas para listar ...
  #1 (permalink)  
Antiguo 10/11/2010, 13:03
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Nombres de campo con variable

Apreciados todos,

estoy haciendo una pequeña aplicación parte en Javascript y parte en ASP. Esta aplicación genera una tabla con filas y columnas para listar los valores que saco de una BD mysql. En las filas quiero que una determinada celda sea editable. Para ello hago lo siguiente:
<%

Set rst=conn.execute(sql)
Mat=rst.getrows
For i=0 to ubound(mat,2)
.....
%>
<td bgcolor="<%=color%>" width="50%"><textarea cols="75" name="desc<%=i%>"><%=ucase(mat(13,i))%></textarea></td>
<%
Next
%>

Como véis el nombre que le pongo al textarea es DESC más un valor dinámico que depende de la i del bucle (ej: DESC1, DESC2...). Los usuarios pueden modificar ese textarea y para validar el cambio y guardarlo en la base de datos estoy pensando en hacer algo así:

<td bgcolor="<%=color%>" width="5%"><input type="button" Value="Save" name="guarda<%=i%>" onclick="javascript:store(<%=mat(0,i)%>,<%=i%>);">

La function store de javascript lo que debería hacer es coger el ID del campo de mat(0,i) y el valor de la i del bucle en ese momento. Con esos datos tenía pensado hacer un submit de un formulario para que actualice el valor en la base de datos pero me encuentro con problemilla.

Cómo obtengo el valor que tiene el campo después de que lo haya modificado el usuario. En principio tenía pensado hacer lo siguiente:

document.nombreformulario.desc+i+.value
también he probado
document.nombreformulario.+'desc'+i+.value

Pero nada de eso funciona.

¿Se os ocurre cómo hacerlo?
  #2 (permalink)  
Antiguo 10/11/2010, 13:06
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Nombres de campo con variable

document.forms['el_form'].elements['desc<%=i%>']
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
  #3 (permalink)  
Antiguo 10/11/2010, 13:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Nombres de campo con variable

debes de acceder a los miembros de un formulario por sus colecciones debidamente:

Código Javascript:
Ver original
  1. var valor = document.forms['nombreformulario'].elements['desc'+i].value;

NOTAS:
document.nombreformulario.desc+i+.value esa concatenación es totalmente inválida, no puedes esperar que js interprete cadenas como miembros por si solo

document.nombreformulario.desc1.value esta forma directa (sin colecciones) solo la soporta IE y algunos navegadores, la forma correcta es la anterior

bgcolor es una propiedad obsoleta, usa CSS: style="background-color:#000000;" donde #HEXcolor RGB
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 11/11/2010, 04:24
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Nombres de campo con variable

Muchas gracias por la rápida respuesta. Ha funcionado a la perfeccción.

Maycolalvarez, gracias también por tus notas :).

Etiquetas: nombres, variables, campos
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 16:08.