Foros del Web » Programando para Internet » PHP »

Cambiar una variable al pinchar un link

Estas en el tema de Cambiar una variable al pinchar un link en el foro de PHP en Foros del Web. Estoy usando php en mi web. Necesito cambiar el valor de una variable de sesión $idioma al pinchar en cada uno de los tres posibles ...
  #1 (permalink)  
Antiguo 12/03/2005, 16:51
Avatar de Ero
Ero
 
Fecha de Ingreso: febrero-2005
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
Cambiar una variable al pinchar un link

Estoy usando php en mi web. Necesito cambiar el valor de una variable de sesión $idioma al pinchar en cada uno de los tres posibles lenguajes (hipervínculo a esa misma página pero con distinto valor de la variable $idioma).
Alguien sabe como hacer para cambiar el valor de la variable?, lo he intentado poniendo el código en la sección onClick del hipervínculo pero no me funciona.
A ver si se os ocurre algo. Un saludo.
  #2 (permalink)  
Antiguo 12/03/2005, 17:04
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
lo podrias hacer con las variables en GET.

ejemplo: index,php=idioma=espanol

segun sea el caso, ya despues segun el valor de la variable idioma, incluyes el archivo de lenguage especificado.
  #3 (permalink)  
Antiguo 12/03/2005, 22:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 14 años, 3 meses
Puntos: 0
lo que te trato de decir Danger, es esto
Código PHP:
<a href="pagina.php?idioma=espanol">Espanol</a>
<
a href="pagina.php?idioma=ingles"Ingles</a>
<
a href="pagina.php?idioma=frances">Frances</a
y entocnes en tu archivo pagina.php
Código PHP:
<?
$idioma 
$_GET['idioma'];
echo 
$idioma // esto es para que veas que estas reciviendo bien el valor de la variables
//y lo que kieras hacer con esto


?>
espero que te halla servido de ayuda, Hasta luego
  #4 (permalink)  
Antiguo 13/03/2005, 04:23
Avatar de Ero
Ero
 
Fecha de Ingreso: febrero-2005
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
Gracias, pero no acaba de ser eso...

Ya sé que funciona, ya lo había probado pero gracias de todas formas.
Mi idea era usar unha variable de sesión y para eso necesitaría algo como meter esto en el link:

<a href="pagina.php?idioma=espanol" onClick="<?php $idioma="ES"; ?>>Espanol</a>
<a href="pagina.php?idioma=ingles" onClick="<?php $idioma="EN"; ?>> Ingles</a>
<a href="pagina.php?idioma=frances" onClick"<?php $idioma="FR"; ?>>Frances</a>

El problema es que si lo hago así en cuanto pulso el link a español se me ejecutan los tres trozos de php e $idioma pasa a valer "FR".
No sé si se puede hacer algo así, pero si a alguien se le ocurre...??? Venga, gracias por vuestras respuestas, un saludo.
  #5 (permalink)  
Antiguo 13/03/2005, 12:03
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 14 años, 5 meses
Puntos: 7
Bueno ERO, el hecho que coloques las lineas de tipo onClick"<?php $idioma="FR"; ?> va a cambiar siempre el valor de tu variable, si quieres que el valor de la variable cambie para el mismo script deberias utilizar
<a href="<?php $PHP_SELF ?>?idioma=espanol">Espanol</a> y obviar el
onClick="<?php $idioma="ES"; ?> , ya que el el interprete de PHP lo que hace es leer todo lo que pongamos en etiquetas del tipo <?php ?>, lo que yo haria en tu caso entonces es colocar al inicio de tu pagina unas lineas que evaluen el estado de tu variable...por ejemplo

if($idioma=="espanol")
{
header(Location:'paginaenespanol.php');
}
if($idioma=="ingles")
{ ......en fin

bueno cada cual lo hace como mejor lo crea conveniente esta es tan solo la forma en que yo resolveria tu problema...
Chaop!
  #6 (permalink)  
Antiguo 13/03/2005, 22:15
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 14 años, 3 meses
Puntos: 0
efectivamente como dijo luchope, ya que el php no interactua asi, pero si puedes bregarlo un poco con javascript
  #7 (permalink)  
Antiguo 14/03/2005, 06:17
Avatar de Ero
Ero
 
Fecha de Ingreso: febrero-2005
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
De acuerdo Solucionado, aunque a ver que os parece

Al final he conseguido hacer lo que quería, muchas gracias por vuestra ayuda. A ver que os parece mi solución:
Como quería tener en cada página de mi sitio web los enlaces a otras páginas sin pasar variables por URL (para no tenerlos triplicados, los 3 idiomas que uso) he hecho lo siguiente:
1.- Inicio una sesión y declaro una variable de sesión $idioma.

2.- Después tengo un if para ver si está definida otra variable $HTTP_GET_VARS["idioma2"],
en caso afirmativo $idioma = $HTTP_GET_VARS["idioma2"];
sino $idioma = valor_por_defecto;

3.- Luego tengo los enlaces de cambio de idioma así:
<p><a href="<?php $PHP_SELF ?>?idioma=ES">Castellano</a></p>
<p><a href="<?php $PHP_SELF ?>?idioma=GA">Galego</a></p>
<p><a href="<?php $PHP_SELF ?>?idioma=EN">Inglés</a></p>
para actualizar la propia página.

4.- Por último los enlaces a otras páginas sin pasar ninguna variable pero con la misma comprobación entre la variable de sesión $idioma y $HTTP_GET_VARS["idioma2"] al comienzo de cada página destino.

Gracias a Danger_ , eagoweb2 y luchope.
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:25.