Foros del Web » Creando para Internet » HTML »

¿Puee hacerse <A HREF ... onClick=<?php ... ?>

Estas en el tema de ¿Puee hacerse <A HREF ... onClick=<?php ... ?> en el foro de HTML en Foros del Web. Quiero dar valor a una variable global. Este valor dependerá de qué enlace sa haya pinchado. Quiero saber si se puede hacer algo aparecido a: ...
  #1 (permalink)  
Antiguo 21/05/2005, 04:09
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Pregunta ¿Puee hacerse <A HREF ... onClick=<?php ... ?>

Quiero dar valor a una variable global. Este valor dependerá de qué enlace sa haya pinchado. Quiero saber si se puede hacer algo aparecido a:

<A HREF= "pagina1.php" onClick=<?php $_SESSION['variable']="caso1" ?> Página 1 </A>

De esta forma me da error al pulsar el elnlace...
  #2 (permalink)  
Antiguo 21/05/2005, 04:25
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
No, eso no te va a funcionar. Recuerda que php se ejecuta sólo en el servidor, el navegador no tienen ni idea de php

En todo caso lo que deberías hacer es agregar la línea que establece el valor a esa variable global a la página php a la que se ha llamado desde el link (pagina1.php)

Un saludo
  #3 (permalink)  
Antiguo 21/05/2005, 04:36
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Tengo un frame izquierdo con una serie de enlaces, y quería q dependiendo de cuál de ellos se pulse, se asigne un valor a una variable global, entonces, según lo q dices, eso no puede hacerse, no? Lo quería de esa forma para q todos los enlaces me llevaran a la misma página y dependiendo de cuál se hubiera pinchado se mostrara una info u otra, ya q lo q se va a mostrar es el mismo tipo de info, estructurada de la misma forma (en una misma tabla, ...), sólo van a cambiar los propios datos, por eso quería dar un valor a una variable dependiendo de qué enlace se pulse. ¿Puedo hacer esto de alguna forma, o tengo q crear obligatoriamente 3 páginas php distintas?
  #4 (permalink)  
Antiguo 21/05/2005, 04:46
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Ah, entonces lo que puedes hacer es enviar un parámetro por la url que identifique el link pinchado y recogerlo en pagina1.php

algo así...

<a href= "pagina1.php?caso=caso1"> Página 1 </a>

Y en la primera línea de pagina1.php le pones...

Código:
if(isset($caso)){
     $_SESSION['variable']= $caso;
}
  #5 (permalink)  
Antiguo 21/05/2005, 05:10
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Ok, ahora sí!! jeje, Muchas gracias!!!! :D
  #6 (permalink)  
Antiguo 21/05/2005, 05:21
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
.. muchas de nadas

Un saludo
  #7 (permalink)  
Antiguo 21/05/2005, 06:06
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
1 problemilla más!!!

Tengo solucionado el tema de los enlaces, pero me ha surgido otro... En la página q llamo desde los enlaces un pagina php cualquiera, tengo:

---conexión al servidor y a la BD---
---si va bien, recogo la variable del enlace de la página anterior---
---y ahora dependiendo del valor de la variable, hago una SQL u otra---

Este punto es así:

if ($_SESSION['inci'] == "sina") {
echo "Incidencias sin técnico asignado";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE TECNICO LIKE ''";
}
else if ($_SESSION['inci']="sins") {
echo "Incidencias sin solucionar";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE FECHA_RESPUESTA IN ('0000-00-00')";
}
else if ($_SESSION['inci']="sol") {
echo "Incidencias solucionadas";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE FECHA_RESPUESTA NOT IN ('0000-00-00')";
}
$rsql1 = mysql_query($sql1, $servconex) or die(mysql_error());

Si ejecuto cada una de las consultas directamente en MYSQL, me sale el resultado q busco, con lo q están bien planteadas. El problema está en la segunda y la tercera. La segunda, al pinchar en el enlace, me muestra bien lo q quiero, pero al pinchar en el tercer enlace, tras lo cual debería ejecutar la tercera consulta SQL, me muestra el resultado de la segunda. No sé por qué es... El código anterior creo q es correcto (la consulta al menos si). El código donde creo los enlaces es el siguiente:

Ver incidencias:
<A HREF="Alistado-inci.php?inci=sina">Sin asignar</A>
<A HREF="Alistado-inci.php?inci=sins">Sin solucionar</A>
<A HREF="Alistado-inci.php?inci=sol">Solucionadas</A>

Aquí tampoco encuentro nada por lo q pueda fallar, ¿sabes por qué puede ser?
  #8 (permalink)  
Antiguo 21/05/2005, 06:29
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Las sentencias para realizar la consulta sql están en la misma página Alistado-inci.php?
  #9 (permalink)  
Antiguo 21/05/2005, 06:43
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Si, en Alistado-inci está el código q he escrito arriba:

---conexión al servidor y a la BD---
---si va bien, recogo la variable del enlace de la página anterior---
---y ahora dependiendo del valor de la variable, hago una SQL u otra---

Este punto es así:

if ($_SESSION['inci'] == "sina") {
echo "Incidencias sin técnico asignado";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE TECNICO LIKE ''";
}
else if ($_SESSION['inci']="sins") {
echo "Incidencias sin solucionar";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE FECHA_RESPUESTA IN ('0000-00-00')";
}
else if ($_SESSION['inci']="sol") {
echo "Incidencias solucionadas";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE FECHA_RESPUESTA NOT IN ('0000-00-00')";
}
$rsql1 = mysql_query($sql1, $servconex) or die(mysql_error());

Dependiendo de lo q se haya pinchado debería entrar en la primero, segudna o tercera, pero la tercera no me la coge...
  #10 (permalink)  
Antiguo 21/05/2005, 11:50
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
¿has probado a sacar directamente el valor de la url en vez de la variable de sesión para establecer la sentencia sql?

$inci == "sina"
  #11 (permalink)  
Antiguo 21/05/2005, 12:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
¿Cómo?

No entiendo a qué te refieres...
  #12 (permalink)  
Antiguo 21/05/2005, 12:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Quiero decir que en vez de establecer lo que hacer preguntando por la variable de sesión ...

if ($_SESSION['inci'] == "sina") {
echo "Incidencias sin técnico asignado";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE TECNICO LIKE ''";
}

...lo hagas comparando con el valor enviado directamente de la url

if ($inci == "sina") {
echo "Incidencias sin técnico asignado";
$sql1 = "SELECT ... FROM INCIDENCIA WHERE TECNICO LIKE ''";
}

$inci es la variable que envías por la querystring, a eso me refiero

prueba a ver si haciéndolo así te sigue fallando
  #13 (permalink)  
Antiguo 21/05/2005, 13:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Nada, de esa forma tampoco funciona...
No entiendo por qué no sale. Las consultas se ejecutan bien en MYSQL, y no entiendo por qué no coge bien el valor del tercer enlace sólamente...
  #14 (permalink)  
Antiguo 21/05/2005, 13:21
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
No me había fijado antes, no se si has hecho copipaste del código que estás usando pero ....

el primer if lleva un condicional
el segundo lleva una asignación

else if ($_SESSION['inci']="sins") {

Ahí debe de cambiar el valor a la variable de sesión (supongo)

Mira que tengas bien todos los condicionales de los if (que estás usando la comparación == en vez de la asignación =)
  #15 (permalink)  
Antiguo 21/05/2005, 13:25
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 18 años, 11 meses
Puntos: 1
Vale, era eso!! qué despiste!!! Ya me estaba volviendo loca, pensaba q el comando NOT IN no funcionaba bien o algo así...
Pues muchas gracias por todo :D
  #16 (permalink)  
Antiguo 21/05/2005, 13:31
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Me alegra que lo hayas solucionado

Saludos
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 11:03.