Foros del Web » Programando para Internet » Javascript »

Fallo al concatenar

Estas en el tema de Fallo al concatenar en el foro de Javascript en Foros del Web. Hola! Soy nueva, felicidades por el foro!!! Tengo 1 problema con las comillas, la concatenación, no se me da nada bien... El caso es que ...
  #1 (permalink)  
Antiguo 31/08/2009, 02:33
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Fallo al concatenar

Hola!
Soy nueva, felicidades por el foro!!!
Tengo 1 problema con las comillas, la concatenación, no se me da nada bien...
El caso es que tengo un boton y al pulsarlo necesito que me haga un submit de un formulario, segun una variable declarada (i) de este modo:

Código:
<input type="button" name="af" value="+ M&Aacute;S" onClick="'document.formulario'+(i-1)+'.action=\"GA.php\";''document.formulario'+(i-1)+'.submit();'">
Al hacer click necesito que se envie formulario1, formulario2, formulario3... en funcion del valor de la variable i.
No me sale y he probado de varias maneras...

onclick="document.formulario+(i-1)+.action....
onclick="document.formulario'+(i-1)+'.action...
onclick="document.formulario[i-1].action...

y no me funciona de ninguna de las maneras....
Aviso que ya he hecho un javascript:alert(i) para verificar si se pasa algun valor, y la respuesta es SI, pasa el valor de i sin problemas...

Ruego una ayudita, no se pero estoy super atrancada....

Mil gracias
  #2 (permalink)  
Antiguo 31/08/2009, 04:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Fallo al concatenar

¿Pero si quieres un formulario en especifico porque estas restandole a la i?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 31/08/2009, 04:14
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Fallo al concatenar

Hola de nuevo abimaelrc:
Eso es porque el valor que tomo de la variable lo uso en dos lugares, en uno uso su valor real i y en otro (donde llamo a un formulario u otro) me hace falta restarle 1... el funcionamiento del code tiene su logica si lo vieras entero, pero lo q falla es la concatenación...
Espero puedas ayudarme, gracias de todos modos!
  #4 (permalink)  
Antiguo 31/08/2009, 05:41
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Fallo al concatenar

independientemente del lado que tomo abimaelrc, la sintaxis esta mal escrita. un string simplemente hace nada, es solo eso, un string. me imagino que tu idea de usar string vino como necesidad de integrar una variable y que fuera parte de la expresion. hay quienes que por lo general hacen eso y luego usan eval para considerar el string como una sentencia javascript. funciona, aunque tiene una gran fama y critica de ser la peor opcion. eso no lo voy a discutir aqui...

la mejor opcion es variar la sintaxis: en lugar de usar el operador de punto para acceder a propiedades de un objeto, utilizamos corchetes ([]) y dentro de este escribimos cualquier expresion que evalue al nombre de alguna propiedad u objeto. por ejemplo en tu caso "formulario" + (i-1) debe evaluar al nombre de uno de los formularios. por tanto, la sintaxis se traduce a:
Código:
document["formulario" + (i-1)].action;
fijate que no hay un punto entre document y el corchete. sin embargo, luego del corchete de cierre tienes que utilizar punto seguido de la propiedad o metodo que fueras a usar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 01/09/2009 a las 01:37 Razón: correción
  #5 (permalink)  
Antiguo 01/09/2009, 01:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Fallo al concatenar

Muchisimas gracias zerokilled, gracias a ti he aprendido algo nuevo e importante para seguir programando y no perder la motivación
Un saludo!!!
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:00.