Foros del Web » Programando para Internet » PHP »

Ayuda Modificar link PHP dependiendo de variable

Estas en el tema de Ayuda Modificar link PHP dependiendo de variable en el foro de PHP en Foros del Web. Hola a todos, Estarian necesitan ayuda.... paso a explicar... Yo tengo una pagina, la cual cambia de secciones con un switch e include, (pagina.com/?sec=algo). El ...
  #1 (permalink)  
Antiguo 15/09/2008, 15:46
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Pregunta Ayuda Modificar link PHP dependiendo de variable

Hola a todos,

Estarian necesitan ayuda.... paso a explicar...

Yo tengo una pagina, la cual cambia de secciones con un switch e include,
(pagina.com/?sec=algo).

El problema lo tengo en la parte de la cabecera, donde tengo una linea de links a las diferentes secciones, los links los puse en index.php, y no en cada seccion... de modo que cuando paso de seccion, todos los links estan habilitados.

Lo que yo quisiera cambiar, es que dependiendo de la seccion en la que me encuentre, el link de la misma cambie, o tenga otro estilo.


como hago eso????
alguien tiene una idea???

Muchas Gracias de Antemano.....
  #2 (permalink)  
Antiguo 15/09/2008, 15:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Ayuda con vinculos y estilos dependiendo de swith e include.

Hola bueno yo no lo hago con php tal vez esto te sirva, yo le pongo estilo a los links con CSS es decir creo un grupo:

a:link {color: #8B2323 ; text-decoration:underline }
a:visited {color: #8B2323}
a:hover {color: #8B2323 ; text-decoration:underline }
a {color: #8B2323 ; text-decoration:none ; }


link es el link inactivo
visited es cuando el usuario visito la seccion
hover es cuando pasas el mouse por encima

ahi le das los estilos, y se aplicaran a todos los links que pongas en html

<a href="">Mi web</a>

ahi se aplicara el estilo
  #3 (permalink)  
Antiguo 15/09/2008, 16:56
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Ayuda con vinculos y estilos dependiendo de swith e include.

de acuerdo, gracias por la pronta respuesta.
Pero lo que yo quiero es modificar mas que el estilo, tambien quiero modificar el valor del destino del link...
eso creo que lo podria hacer con PHP.

como haria eso, alguien tiene una idea???


Gracias de antemano y suerte para todos

Última edición por binagol; 15/09/2008 a las 17:06
  #4 (permalink)  
Antiguo 15/09/2008, 19:20
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Ayuda Modificar link PHP dependiendo de variable

mm haber si entendi bien.. lo que deseas es q depenjdiendo de el valor de 'x' variable cambie tu link cierto. Mira yo utilizo este codigo
$log = 2;
if ($log == 1) {
$login = 'Pagina1.php';
} elseif ($log == 2) {
$login = 'Pagina2.php';
} else {
$login = 'Pagina3.php';
}


<a href="<?php echo '$login'; ?>">Enlace</a>

Espero te ayude y Suerte
  #5 (permalink)  
Antiguo 15/09/2008, 19:23
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Ayuda Modificar link PHP dependiendo de variable

Barbaro, eso era exactamente lo que estaba buscando....!!!


un millon de gracias..... y disculpen la molestia...
  #6 (permalink)  
Antiguo 15/09/2008, 19:52
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda Modificar link PHP dependiendo de variable

Cómo así lo solucionaste?

Usando $_SERVER['REQUEST_URI'] sabes cuál es la URL que solicitó el cliente. Y en tu caso podrías usar perfectamente el valor de $_GET['sec'] para colorear la opción correspondiente en el menú. Una buena opción en estos casos es almacenar el menú en un arreglo, y para imprimirlo generas un ciclo. En cada ciclo compruebas cuál es la opción en la que se encuentra tu visitante, y si coinciden, aplicas tus cambios:

Código php:
Ver original
  1. // Creamos el menú
  2. $menu = array(
  3.     "pagina.php?sec=index" => "Inicio",
  4.     "pagina.php?sec=galeria" => "Galería",
  5.     "pagina.php?sec=foros" => "Foros",
  6.     "pagina.php?sec=blog" => "Blog",
  7.     "pagina.php?sec=acercade" => "Acerca de",
  8.     "pagina.php?sec=ayuda" => "Ayuda"
  9. );
  10.  
  11. // Guardamos la ubicación actual del visitante
  12. $actual = "pagina.php?sec=".$_GET['sec'];
  13.  
  14. // Recorremos el arreglo $menu para imprimirlo
  15. foreach($menu as $seccion => $link) {
  16.     // $link el texto (título) del link; $seccion, la seccion en la URL
  17.     echo "<a href=\"$seccion\"";
  18.     if($seccion == $actual) {
  19.         // Si el link en este ciclo coincide con el actual, aplicamos un estilo diferente
  20.         echo " class=\"linkactivo\"";
  21.     } else {
  22.         // Si no coincide con el actual, aplicamos otro estilo
  23.         echo " class=\"linkinactivo\"";
  24.     }
  25.     echo ">$link</a>";
  26. }
Espero que esto te de una idea

Saludos,

Última edición por okram; 15/09/2008 a las 21:31 Razón: Corrección de comentarios en el código
  #7 (permalink)  
Antiguo 15/09/2008, 20:12
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Ayuda Modificar link PHP dependiendo de variable

Perfecto..... Eso se parece mas a lo que estaba buscando.... es perfecto!!!

Osea, lo anterior, tambien servia, pero queria un codigo un poco mas prolijo o completo...




te pasaste!!!! maestro!!!

Muchas gracias a los dos!!!!
  #8 (permalink)  
Antiguo 15/09/2008, 20:16
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Ayuda Modificar link PHP dependiendo de variable

solo para completar la idea....

si yo quisiera que en la seccion actual el link sea otro??? o que no tenga linK???

como tendria que cambiar el codigo??

Gracias de antemano
  #9 (permalink)  
Antiguo 15/09/2008, 21:30
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda Modificar link PHP dependiendo de variable

Dentro del foreach date cuenta que se imprime para todos los elementos el tag de apertura <a> y cierre </a>, y usando un condicional if se asigna un estilo dependiendo de si el link es el actual o no. Usa ese condicional if para modificar y establecer las acciones que desees. Puedes obviar los tags <a> e incluirlos sólo para que se muestren en los links "inactivos" (en el else). Ingenio, no? NO se trata de que copies y pegues el código, s etrata de que lo leas y entiendas como va.

Saludos,
  #10 (permalink)  
Antiguo 15/09/2008, 21:43
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Ayuda Modificar link PHP dependiendo de variable

ok, gracias.... la verdad que no habia pensado bien como corregirle eso.....
lo leo bien, lo pruebo y comento.....


Muchas Gracias.
  #11 (permalink)  
Antiguo 22/09/2008, 20:18
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Pregunta Respuesta: Ayuda Modificar link PHP dependiendo de variable

Hace unos dias implemente perfectamente este codigo, pero hoy decidi cambiar el formato con que se ve la barra de links.
Se me presento un problema cuando decidi separar los links en el codigo anterior, por medio de :

&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;

Lo cual lo hace quedar mucho mas estetico. El problema, es que agrega el separador tambien despues del ultimo.

En la pantalla me queda de la siguiente manera: "link | link | link | link | "

Quisiera ayuda para modificar el codigo para que quede: "link | link | link | link"

Les muestro el codigo como quedo terminado hasta ahora:

Código PHP:
<?  
//Determina si existe la seccion indicada en $sec (use esto, por que ya lo tenia armado con include para las secciones de la pagina)
switch($_GET['sec']){
default: 
$actual "index.php?sec=inicio"; break;
case 
"1"$actual "index.php?sec=".$_GET['sec']; break;
case 
"2"$actual "index.php?sec=".$_GET['sec']; break;
case 
"3"$actual "index.php?sec=".$_GET['sec']; break; 
case 
"4"$actual "index.php?sec=".$_GET['sec']; break;
case 
"5"$actual "index.php?sec=".$_GET['sec']; break;
case 
"6"$actual "index.php?sec=".$_GET['sec']; break;
case 
"7"$actual "index.php?sec=".$_GET['sec']; break;
}
// Creamos el menú
$menu = array(
    
"index.php?sec=inicio" => "INICIO",
    
"index.php?sec=1" => "SECCION 1",
    
"index.php?sec=2" => "SECCION 2",
    
"index.php?sec=3" => "SECCION 3",
    
"index.php?sec=4" => "SECCION 4",
    
"index.php?sec=5" => "SECCION 5",
    
"index.php?sec=6" => "SECCION 6",
);

// Recorremos el arreglo $menu para imprimirlo
foreach($menu as $seccion => $link) {
    
// $link el texto (título) del link; $seccion, la seccion en la URL
    
if($seccion == $actual) {
    echo 
"<a href=\"#\"";
    echo 
" class=\"visited\"";
    } else {
    echo 
"<a href=\"$seccion\"";
    echo 
" class=\"link\"";
    }
echo 
">$link</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;";
}

?>

alguien me puede dar una mano para modificar eso?????

muchas gracias de antemano.

Última edición por binagol; 22/09/2008 a las 20:23
  #12 (permalink)  
Antiguo 22/09/2008, 20:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda Modificar link PHP dependiendo de variable

Puedes usar banderas para indicarle al script donde debe poner el separador y donde no. Una bandera es una variable que, dependiendo de su valor true o false va a determinar la ejecución de una tarea, de un código:

Código php:
Ver original
  1. // Si la bandera está en true, quieres decir que ya se han impreso elementos, por lo tanto,
  2. // se debe colocar un separador antes del nuevo link
  3. $bandera = false;
  4.  
  5. $separador = "&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;";
  6.  
  7. foreach($menu as $seccion=>$link) {
  8.     if($bandera == true) echo $separador; // Ya hay elementos, por lo tanto hay que imprimir el separador
  9.     else $bandera = true; // Es el primer elemento, por lo tanto cambiamos la bandera a true
  10.     // El resto del código
  11. }
Además, el switch inicial lo puedes simplificar mucho, así:
Código php:
Ver original
  1. //Determina si existe la seccion indicada en $sec (use esto, por que ya lo tenia armado con include para las secciones de la pagina)
  2. switch($_GET['sec']){
  3.     case "1": case "2": case "3": case "4": case "5": case "6": case "7":
  4.         $actual = "index.php?sec=".$_GET['sec']; break;
  5.     default:
  6.         $actual = "index.php?sec=inicio"; break;
  7. }
www.php.net/switch --> Lee sobre el uso de break; dentro de un switch

Saludos,
  #13 (permalink)  
Antiguo 22/09/2008, 20:52
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Ayuda Modificar link PHP dependiendo de variable

barbaro!!!!!

un millon de gracias... lo del switch... no sabia que se podia hacer asi, mucho mas practico...

respecto a lo otro.... no se me cruso ni de casualidad hacerlo al reves... poner la separacion adelante!!

LA VERDAD.... MIL GRACIAS....
  #14 (permalink)  
Antiguo 16/08/2009, 21:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda Modificar link PHP dependiendo de variable

Hola, disculpen si este no es el foro correspondiente.
Mi pregunta es la siguiente:

Tengo un fichero /swf donde guardo juegos en flash. pero para no crear un html con el flash para cada uno quiero hacer que con la funcion switch y correspondiendo segun la url (p.j. juegos.php?game=auto1)

y que segun cada case cambie el archivo de origen del flash.


Gracias.

ASL
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 04:31.