Foros del Web » Programando para Internet » Javascript »

Problema.Pasar valor a funcion

Estas en el tema de Problema.Pasar valor a funcion en el foro de Javascript en Foros del Web. Saludos. Tengo un codigo que me esta dando unos problemas. Deberia abrir un popup y escribir dentro del documento unas lineas de codigo y lo ...
  #1 (permalink)  
Antiguo 18/05/2005, 13:01
 
Fecha de Ingreso: mayo-2005
Mensajes: 5
Antigüedad: 19 años
Puntos: 0
Problema.Pasar valor a funcion

Saludos.

Tengo un codigo que me esta dando unos problemas.
Deberia abrir un popup y escribir dentro del documento unas lineas de codigo y lo hace, pero cuando desde el tag de html le paso una variable, que es el de una imagen, me sustituye el valor de la variable por undefined.

Código:
function big() {

//  Abre la ventana

var win= window.document.open( "","ventana","width=400,height=400,status=yes,scrollbars=no,resizable=0,location=1" );
			
//  Escribe dentro de la ventana

win.document.writeln( "<HTML><HEAD><TITLE>Slideshow2</TITLE></HEAD><BODY>" );
win.document.writeln( "<img src='images/700/mini-"+imagen+"'>" );
win.document.writeln( '</BODY></HTML>' );
			
}
</SCRIPT>
Llamo a la funcion desde un onclick en un tag de una imagen generada por un codigo de PHP quedando algo como lo siquiente:

Código:
<img src="images/thumbnails/TN_DSC02464.JPG" onclick="big("DSC02464.JPG")">
gracias.
  #2 (permalink)  
Antiguo 18/05/2005, 15:58
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, jrjrjr45
Bienvenido a los foros.
supongo que el dato que le pasas a la función ("DSC02464.JPG") es el nombre de la imagen que quieres que muestre en la ventana emergente. Pero es que tu función no lo está recogiendo, debería ser
Código:
function big(imagen)
Aparte de eso, tienes un problema de comillas en la llamada:
Código:
<img src="images/thumbnails/TN_DSC02464.JPG" onclick="big('DSC02464.JPG')">
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 18/05/2005, 16:47
 
Fecha de Ingreso: mayo-2005
Mensajes: 5
Antigüedad: 19 años
Puntos: 0
La recogida de la variable en la funcion lo habia probado pero como el resultado tampoco funcionaba, cosa que no me resultaba muy logico, pero gracias por verificarme que hay que ponerlo.

y viendo esto....al parecer tengo un problema con las comillas. El problema en realidad es que esa linea la imprime un codigo de php y las comillas simples hacen una cosa y las dobles otra, mañana intentaré solucionarlo con un poco mas de tiempo que seguro que ese es mi fallo. que....por cierto ya se me esta ocurriendo la solucion a lo de las comillas, mañana cuento como me ha ido.

gracias por responder tan pronto ;)
  #4 (permalink)  
Antiguo 19/05/2005, 08:46
 
Fecha de Ingreso: mayo-2005
Mensajes: 5
Antigüedad: 19 años
Puntos: 0
Ahora la cosa es graciosa porque sigue sin funcionar, me dice el explorador de internet que la pagina tiene errores, luego actualizo la pagina y ya no me dice que tiene errores y tampoco me abrela ventana.

he cambiado el codigo y ahora tiene este aspecto la funcion:

Código:
<SCRIPT LANGUAGE="javascript" type="text/JavaScript>

function big(imagen) {

//  Open New Window

var win= window.document.open( "","ventana","width=400,height=400,status=yes,scrollbars=no,resizable=0,location=1" );
			
//  Write Form in New Window

win.document.writeln( "<HTML><HEAD><TITLE>Slideshow2</TITLE></HEAD><BODY>);
win.document.writeln( "<img src='images/700/mini-"+imagen+"'>" );
win.document.writeln( '</BODY></HTML>' );

}
</SCRIPT>
El llamamiento de la funcion tiene este aspecto en PHP por si alguien le interesa y asi veis como he puesto las comillas simples donde le paso la variable a la funcion. Bastante simple, le he puesto "chr(39)" que es el equivalente al caracter ' del codigo ascii.

Código:
echo '<img src="images/thumbnails/TN_'.$foto.'" onclick="big('.chr(39).$foto.chr(39).');"><br>';
y despues de generar la pagina tiene el siguiente aspecto:

Código:
<img src="images/thumbnails/TN_00000043.JPG
" onclick="big('00000043.JPG
')"><br>
gracias de antemano por la ayuda.
  #5 (permalink)  
Antiguo 19/05/2005, 17:46
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola de nuevo
No me di cuenta en el primer mensaje, pero
1.- Hay más comillas perdidas; a veces el navegador perdona estas cosillas, pero otras le bloquean. Te recomiendo que uses para depurar Mozilla o Firefox, te dicen dónde están los errores de javascript.
2.- Nunca he visto "window.document.open" ¿de dónde lo has sacado? Prueba window.open
<SCRIPT LANGUAGE="javascript" type="text/JavaScript">

function big(imagen) {

// Open New Window

var win= window.open( "","ventana","width=400,height=400,status=yes,scro llbars=no,resi zable=0,location=1" );

// Write Form in New Window

win.document.writeln( "<HTML><HEAD><TITLE>Slideshow2</TITLE></HEAD><BODY>");
win.document.writeln( "<img src='images/700/mini-"+imagen+"'>" );
win.document.writeln( '</BODY></HTML>' );

}
</SCRIPT>

3.- Por lo que sé, es recomendable -aunque no imprescidible- cerrar ¿y abrir? el documento:
win.document.open()
win.document.writeln(...etc...)
win.document.close()
__________________
Angel :cool:
  #6 (permalink)  
Antiguo 21/05/2005, 12:09
 
Fecha de Ingreso: mayo-2005
Mensajes: 5
Antigüedad: 19 años
Puntos: 0
Gracias.
Tambien he rectificado esas comillas y sigue sin funcionar. Esto empieza a ser un problema con solucion basada en probatinas.

Me he estado fijando en el codigo que genera el servidor y estoy viendo que genera un codigo con este aspecto:

<img src="images/thumbnails/TN_00000043.JPG
" onclick="big('00000043.JPG
')"><br>

ciriosamente esta escribiendo un intro justo despues de los nombres de las imagenes, cosa que no deberia afectar porque en html no se interpretan los intros, pero no se si en javascript afecta para alguna cosa, asi que lo que voy a hacer va a ser intentar deshacerme de esos intros porque el codigo del javascript parece estar bien, es mas, he utilizado el window.open() en otras paginas y funciona a la perfeccion pasandole parametrosy funciona a la prefeccion.

Probaré esto y os aviso, gracias.
  #7 (permalink)  
Antiguo 22/05/2005, 12:47
 
Fecha de Ingreso: mayo-2005
Mensajes: 5
Antigüedad: 19 años
Puntos: 0
Esto ya funciona :D, MUCHAS GRACIAS!!! :D

Os agradezco mucho vuestra ayuda, por montar este pedazo de sitio con gente con unas mentes tan maravillosas, y no puedo olvidarme de ti ""angsanchez"" de quien he tenido el placer de recibir ayuda esta vez, muchas gracias.

El error estaba ahi donde imaginaba, en ese intro de despues del nombre de la imagen. Seguramente muchos ya sepais como deshaceos de ese intro pero yo lo acabo de conseguir y me gustaria comentar la experiencia o mas bien lo que ha solucionado el problema. Tal vez a alguien le interese :D

Tengo un codigo en PHP que lee un archivo con la funcion fgets(), pero el archivo tiene este aspecto:

imagen1.jpg
imagen2.jpg
.....
imagenN.jpg

donde cada nombre de archivo estaba separado por un intro, esto hacia que el servidor generase un codigo que escribia ese intro detras de el nombre del archivo, asi:

<img src="images/thumbnails/TN_00000043.JPG
" onclick="big('00000043.JPG
')"><br>

y ese intro me daba problemas a la hora de pasar ese valor a la funcion big(), que abria una ventana con ese archivo. ademas del conflicto de las comillas que esta explicado mas arriba, necesitaba deshacerme de ese intro, que sin él el la funcion big() si que funcionaba. Encontré una funcion que se llama trim() en PHP que lo que hace es deshacerse de espacios, intros, tabuladores, etc., solo me fue necesario pasarle esta funcion la variable que escribia el nombre de la imagen para que quitase el intro y despues escribia el codigo html de la imagen asi (el nombre de la imagen es irrelevante):

<img src="images/thumbnails/TN_Andalucia%20005.jpg" onclick="big('Andalucia%20005.jpg')"><br>

Tras esto la funcion recibia el valor sin problemas y todo funcionaba en condiciones.

Muchas gracias, en serio. es mas, este verano en mis ratos libres vendré por aqui por si puedo yo tambien ayudar a gente con mi experiencia en otros lenguajes u otras ramas de la informatica.

Redundante pero....Muchas gracias ^^
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 05:08.