Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/11/2008, 03:57
RMontes
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Asignar un índice a un nombre de variable.

Hola de nuevo, en primer lugar gracias David el Grande por tu respuesta, siento decirte que no me ha funcionado, he probado la alternativa que me ofreciste, pero no me permitió asignarle el value al elemento del array, voy a explicar bien mis intenciones.

Estoy creando una página utilizando ASP que genere dinámicamente un formulario al pulsar sobre un botón, este formulario se generará llamando a una función que crea la estructura utilizando el DOM, entre los campos del formulario se encontrará un campo Select, el cual sus values y su texto los cargará de una tabla en la Base de Datos.

En el código ASP meto en una variable todos los values separados por comas como si fuera una cadena.

Cita:
valuesPP = valuesPP & rsPP("idPerfilProfesional") & ","
Y en otra variable meto todos los textos que contendrá cada option de esa Select

Cita:
perfiles = perfiles &rsPP("perfil")&","
Estas dos cadenas se las mando al archivo .js mediante una función.

Cita:
<input type = "button" onclick="generaExperiencia('<%=valuesPP%>','<%=per files%>','<%=contadorPP%>')">
<%=contadorPP%> simplemente contiene el número de registros que cargó de la BD.

Posteriormente nos vamos a la función :

Cita:
function generaExperiencia(valuesPP,perfiles,contadorPP){
Las dos cadenas que le pasamos, las cortamos y metemos cada valor en una casilla de un array, para cada variable.

Cita:
arrayvalues = valuesPP.split(',');
arrayperfiles = perfiles.split(',');
Llegados a este punto

Voy creando la estructura del formulario utilizando el DOM, llego a la Select

Cita:
selectPP = document.createElement('select');
optionPP0 = document.createElement('option');
optionPP0.value = 0;
txtOptPP0 = document.createTextNode('Selecciona');
Y llegamos al punto en que quiero crear todas las options para el select, procedentes de la Base de Datos.

Cita:
for (j=1;j<contadorPP;j++) {

window["optionPP" + j] = document.createElement('option');
window["optionPP"+ j].value = arrayvalues[j-1];
window["txtOptPP" +j] = document.createTextNode(arrayperfiles[j-1]);

}


Y posteriormente hago el montaje de las mismas.

Cita:
optionPP0.appendChild(txtOptPP0);

for (j=1;j<contadorPP;j++) {

// Aquí está el Error: El objeto no acepta esta propiedad o método
window["optionPP" + j].appendChild(["txtOptPP" + j]);
}

selectPP.appendChild(optionPP0);

for (j=1;j<contadorPP;j++) {
selectPP.appendChild(["optionPP"+j]);
}

td3.appendChild(selectPP);
Espero haberlo documentado bien y que me hayan comprendido, gracias de antemano.

He probado a hacerlo también, desde ASP a mandarle la función un String con las órdenes de crear la estructura mediante el DOM, pero parece que el DOM no acepta crear la estructura a partir de una cadena.
Esta es la otra salida que he visto posible , si saben otra salida soy todo oidos, gracias de nuevo.

Última edición por RMontes; 06/11/2008 a las 04:05