Foros del Web » Programando para Internet » Javascript »

varias opciones en un href

Estas en el tema de varias opciones en un href en el foro de Javascript en Foros del Web. Hola a tod@s, tengo una función javascript que llamo desde un enlace y me gustaría que, además de la llamada a esta función, también se ...
  #1 (permalink)  
Antiguo 03/01/2011, 13:52
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
varias opciones en un href

Hola a tod@s,

tengo una función javascript que llamo desde un enlace y me gustaría que, además de la llamada a esta función, también se modificara el valor de una variable para asegurarme de que el enlace se ha pulsado.
Lo que pasa es que, si tengo este código:

<a href="javascript:cambiarImagen('<?echo $rutaImagenes?>');<?echo $link_selected=1?>">

lo que hace es abrirme una ventana nueva con el valor 1.

Lo que quiero es que, simplemente ejecute la función cambiarImagen y asigne el valor 1 a la variable $link_selected pero no que me abra una ventana nueva con un uno escrito.

¿Cómo lo escribo?

Un saludo.
  #2 (permalink)  
Antiguo 03/01/2011, 14:26
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: varias opciones en un href

para evitar el comportamiento natural de un link, has de añadirle return false. de esta parte, <?echo $link_selected=1?>, como es php no opino, pero al menos en asp no puedes asignar valor a una variable asp así
  #3 (permalink)  
Antiguo 03/01/2011, 18:04
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: varias opciones en un href

IsabelM, no entiendo muy bien a qué te refieres.
¿Quieres decir que añada return false a la función de cambiar imagen?

y luego, ¿cómo sé si me ha devuelto true o false?

Con una variable pensaba después hacer:

if ($variable==1) hacer X
else Y

pero no sé cómo escribirlo como tú dices.

¿Puedes, por favor, ponerme un ejemplo de código?
  #4 (permalink)  
Antiguo 04/01/2011, 03:27
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: varias opciones en un href

¿¿Dónde debo asignar el valor 1 a la variable para saber si se ha pulsado el link?

¿Dentro del href?

¿En la función javascript?

Crear una función específica para asignarle un valor a una variable me parece demasiado, ¿no?

¿Alguien puede indicarme un ejemplo pequeñito?
  #5 (permalink)  
Antiguo 04/01/2011, 06:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: varias opciones en un href

sí, ahora releyendo, tampoco me he entendido. me refería a esto
Cita:
<html>
<head>
<script type="text/javascript">
var valor='';
function cambiarImagen(img) {
alert(img + ' - ' + valor);
}
</script>
</head>
<body>
<a href="#" onclick="valor='1'; cambiarImagen('una imagen'); return false;">nueva imagen</a>
</body>
</html>
  #6 (permalink)  
Antiguo 04/01/2011, 09:29
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: varias opciones en un href

Muchas gracias isabel,

El código lo he probado y funciona bien lo que pasa es que ahora yo necesito comprobar si se ha pulsado o no ese enlace:

if (valor == 1) {
accion 1
}else {
accion 2

Y para ello sólo sé hacerlo con php.
¿Cómo puedo introducir una variable php y asignarle el valor 1 en el onclick de un enlace?

he probado esto pero no me funciona:
<a href="javascript:cambiarImagen('<?echo $rutaImagenes?>')" onclick="<?echo $link='1';?>"

Me gustaría que la variable $link valiera 1 Únicamente cuando se pulsa el enlace. Y así entiendo que debería ocurrir pues la he introducido en el onclick.
Sin embargo no es así. He puesto un var_dump($link) más abajo para ver lo que vale la variable y siempre vale 1. independientemente de si se ha pulsado o no el enlace. ¿Por qué ocurre esto?
¿Cómo podría utilizar esta variable php y asignarle un 1 en el onclick o en el href?
  #7 (permalink)  
Antiguo 04/01/2011, 09:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: varias opciones en un href

Hola:

Nunca debes mezclar cosas javascript con php; solo podrías alterar variables previo paso por el servidor, o sea recargando la página.

Una cosa que nunca me ha gustado es usar enlaces para lanzar scripts... el onclick vale en cualquier tag y no mareas a los buscadores.

Para lo que quieres, en principio parece que solo se puede resolver con Ajax o sin javascript.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 04/01/2011, 10:01
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: varias opciones en un href

Ya veo,

Entonces dejo a un lado el php y me centro en javascript.
Pero, suponiendo que tengo este código:

<a href="" onclick=javascript:cambiarImagen('<?echo $rutaImagenes?>')">

Ahora añado a la función cambiarImagen la sentencia:

link_pulsado = '1';

¿Cómo sería el código para mostrar o no mostrar un botón en mi página?
Quiero decir que la variable link_pulsado es interna a la función y aquí no la podría usar, ¿no?

en php sería:

if ($link_pulsado == '1) {
// mostrar botón
}else {
// ocultar botón
}

¿Cómo sería en javascript?

<script>

// Este código es el que no sé hacer para mostrar o no un botón en mi web dependiendo de si se ha pulsado o no el enlace.
El enlace sería únicamente para activar una variable

</script>
  #9 (permalink)  
Antiguo 04/01/2011, 11:04
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: varias opciones en un href

a ver si es esto lo que quieres
Cita:
<html>
<head>
<script type="text/javascript">
var valor='';
function cambiarImagen(img) {
alert(img + ' - ' + valor);
document.getElementById('boton').style.display = valor == 1 ? 'block' : 'none';
}
</script>
</head>
<body>
<input type="button" id="boton" value="se muestra" style="display: none" />
<a href="#" onclick="valor2='1'; cambiarImagen('una imagen'); return false;">nueva imagen</a>
</body>
</html>
  #10 (permalink)  
Antiguo 04/01/2011, 11:50
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: varias opciones en un href

Justo!!

Eso era lo que yo quería!!

Muchísimas gracias IsabelM!

Etiquetas: href, opciones
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 01:00.