Foros del Web » Programando para Internet » PHP »

Menu dinamico en PHP

Estas en el tema de Menu dinamico en PHP en el foro de PHP en Foros del Web. Tengo una duda muy grande,quiero hacer un menu dinamico con php y que me cargue en una parte que sea el contenido el cual uso ...
  #1 (permalink)  
Antiguo 28/12/2011, 22:58
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 13 años, 1 mes
Puntos: 0
Menu dinamico en PHP

Tengo una duda muy grande,quiero hacer un menu dinamico con php y que me cargue en una parte que sea el contenido el cual uso un

Código PHP:
<?
function Navegacion($F){

    switch(
$F){
        case 
"Buscar": include("paginas/Buscar.php"); break;
        case 
"Historia": include("paginas/Historia.php"); break;
        case 
"Contacto": include("paginas/Contacto.php"); break;
        case 
"Fotos": include("paginas/Fotos.php"); break;
        default: include(
"inicio.php"); break;
    }

}

?>
y en el index los mando llamar atraves de
Código HTML:
<?
include("sistema/funciones.php");
?>
              
         
            <a href="sistema/funciones.php?F=Buscar">Buscar</a>
         <a href="sistema/funciones.php?F=Historia">Historia</a>
<a href="sistema/funciones.php?F=Contacto">Contacto</a>
<a href="sistema/funciones.php?F=Fotos">Fotos</a>


 <td class="contenido"><?=Navegacion($_GET['F'])?></td> 
Tengo esa duda por que me marca error en la variable F y ya me atore,espero que me hechen una mano :/ Gracias

Última edición por leoangels; 28/12/2011 a las 23:04
  #2 (permalink)  
Antiguo 28/12/2011, 23:29
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Menu dinamico en PHP

Saludos. Y que error te muestra? Puedes postearlo para poder verlo?
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.
  #3 (permalink)  
Antiguo 28/12/2011, 23:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Menu dinamico en PHP

Cita:
Iniciado por jorgelpadronb
Saludos. Y que error te muestra? Puedes postearlo para poder verlo?
Supongo que será algo como "undefined index F on archivo... linea"
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 28/12/2011, 23:54
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Menu dinamico en PHP

Probá así
<?php Navegacion($_GET['F']); ?>
__________________
la la la
  #5 (permalink)  
Antiguo 29/12/2011, 00:10
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Menu dinamico en PHP

Una disculpa por la tardansa estaba checando el codigo paso x paso
tambien me falto en esta parte redireccionarlo bien
default: include("inicio.php"); break;
a
default: include("_pages/inicio.php"); break;

este es el error que me tira...


Notice: Undefined index: F in C:\xampp\htdocs\Pagina\index.php on line 43

truman_truman ya le probe como me dijo e igual me tira el mismo error

Última edición por leoangels; 29/12/2011 a las 00:15 Razón: me faltaban cosas por explicar
  #6 (permalink)  
Antiguo 29/12/2011, 00:23
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Menu dinamico en PHP

Código PHP:
Ver original
  1. <?
  2. include("sistema/funciones.php");
  3. ?>
  4.              
  5.          
  6.             <a href="sistema/funciones.php?F=Buscar">Buscar</a>
  7.          <a href="sistema/funciones.php?F=Historia">Historia</a>
  8. <a href="sistema/funciones.php?F=Contacto">Contacto</a>
  9. <a href="sistema/funciones.php?F=Fotos">Fotos</a>
  10.  
  11.  
  12.  <td class="contenido"><?=Navegacion($_GET['F'])?></td>

Fíjate en este código que pones. Incluyes el archivo funciones.php y luego desde este mismo código diriges los links hacia el mismo archivo funciones.php que incluiste arriba. No entiendo bien lo que haces ahí. Este código está en el Index.php? En esos links es donde pasas la variable F. No deberían apuntar a Index.php en lugar de a funcions.php?
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.
  #7 (permalink)  
Antiguo 29/12/2011, 00:33
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Menu dinamico en PHP

en funciones tengo el switch
Código PHP:
<?php

function Navegacion($F) {

    switch (
$F) {

        case 
"Historia": include("_pages/locutores.php");
            break;

        case 
"Fotos": include("_pages/fotos.php");
            break;

        case 
"Contacto": include("_pages/contacto.php");
            break;
        default: include(
"_pages/inicio.php");
            break;
    }
}

?>
en el Index tengo
Código HTML:
<?php
include 'sistema/funciones.php';
?>
<tr>
        <td class="menu"><table border="0" cellspacing="0" cellpadding="0" width="100%">
          <tr>
              
         
            <td class="linkMenu"> <a href="sistema/funciones.php?F=Buscar">Buscar</a></td>
              
          <td class="linkMenu"><a href="sistema/funciones.php?F=Historia">Historia</a></td>
 <td class="linkMenu"><a href="sistema/funciones.php?F=Contacto">Contacto</a></td>
 <td class="linkMenu"><a href="sistema/funciones.php?F=Fotos">Fotos</a></td>
          </tr>
        </table></td>
      </tr>
      <tr>
          <td class="contenido"><?php  Navegacion($_GET['F']);?></td>
      </tr> 
si no lo mando llamar con include 'sistema/funciones.php'; me tira error en la funcion Navegacion
  #8 (permalink)  
Antiguo 29/12/2011, 00:41
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Menu dinamico en PHP

Si pero por qué tus links llaman a funciones.php y le pasan la variable F, si enrealidad a quien tu le quieres pasar la variable F es al index.php? Lo que haces con funciones.php es incluirlo al cargar el index.php, y luego usas la función Navegación que utiliza como parámetro a F, que se supone que entró por GET al Index.php. Pero en realidad los links que mandan a F lo están enviando a funciones.php y no a Index.php.

Fíjate que pones:

<a href="sistema/funciones.php?F=Fotos">

y debería ser:

<a href="sistema/Index.php?F=Fotos">
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.
  #9 (permalink)  
Antiguo 29/12/2011, 00:41
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Menu dinamico en PHP

yo creo que el problema está en que el include se hace dentro de la funcion y no en el lugar en donde la estás llamando.
La funcion tendría que retornar el nombre del archivo a incluir, y el include hacerlo en donde AHORA estás llamando a la función, se entiende?


Código PHP:
<?php function Navegacion($F) {

    switch (
$F) {

        case 
"Historia"
        return
"_pages/locutores.php";
            break;

        case 
"Fotos"
        return
"_pages/fotos.php";
            break;

        case 
"Contacto"
        return
"_pages/contacto.php";
            break;
            
        default: 
        return
"_pages/inicio.php";
            break;
    }
?>



Código PHP:
<?php include Navegacion($_GET['F']);?>
__________________
la la la
  #10 (permalink)  
Antiguo 29/12/2011, 00:45
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Menu dinamico en PHP

Cita:
Iniciado por truman_truman Ver Mensaje
yo creo que el problema está en que el include se hace dentro de la funcion y no en el lugar en donde la estás llamando.
La funcion tendría que retornar el nombre del archivo a incluir, y el include hacerlo en donde AHORA estás llamando a la función, se entiende?


Código PHP:
<?php function Navegacion($F) {

    switch (
$F) {

        case 
"Historia"
        return
"_pages/locutores.php";
            break;

        case 
"Fotos"
        return
"_pages/fotos.php";
            break;

        case 
"Contacto"
        return
"_pages/contacto.php";
            break;
            
        default: 
        return
"_pages/inicio.php";
            break;
    }
?>



Código PHP:
<?php include Navegacion($_GET['F']);?>
Buen punto truma. Saludos.
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.
  #11 (permalink)  
Antiguo 29/12/2011, 00:51
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Menu dinamico en PHP

Gracias gracias soy todavia novato en php....
truman_truman gracias por la aportacion ya estaba todo cerrado de la mente....
jorgelpadronb gracias por hacerme ver el error sobre funciones e index la verdad me confundi demaciado ya que estaba todo desesperado...
el error me lo sigue tirando Notice: Undefined index: F in C:\xampp\htdocs\Pagina\index.php on line 45
igual cuando la suba al host espero se quite ese error
PERO la pagina funciona como yo lo deseaba...
De antemano estoy agradecido por su ayuda :)

Última edición por leoangels; 29/12/2011 a las 00:57
  #12 (permalink)  
Antiguo 29/12/2011, 03:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Menu dinamico en PHP

Cita:
Iniciado por Triby Ver Mensaje
Supongo que será algo como "undefined index F on archivo... linea"
Cita:
Iniciado por leoangels Ver Mensaje
este es el error que me tira...

Notice: Undefined index: F in C:\xampp\htdocs\Pagina\index.php on line 43
Ya me lo imaginaba!

Te tira el error porque estás ingresando sin definir F en la url, es decir, pagina.php en vez de pagina.php?F=Algo por tanto, F no existe en $_GET y, lo que debes hacer es usar una variable temporal que deberás inicializar en estos casos.

Código PHP:
Ver original
  1. <?php
  2. if(isset($_GET['F'])) { // Se especificó en la URL?
  3.     $F = $_GET['F'];
  4. } else { // No se especificó, entonces hay que darle un valor!
  5.     $F = '';
  6. }
  7. include Navegacion($F); // Fin del problema!
  8.  
  9. ?>
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 29/12/2011, 11:43
Avatar de aleksdj  
Fecha de Ingreso: enero-2011
Mensajes: 31
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Menu dinamico en PHP

Siempre es bueno comprobar la existencia de variables antes de usarlas sobre todo en lenguajes no tipados tipo php, etc.
__________________
Las mantas más chulas y baratas en tiradelamanta.com, creada en palbin.com, servicio web para crear tienda online.
  #14 (permalink)  
Antiguo 29/12/2011, 11:44
Avatar de aleksdj  
Fecha de Ingreso: enero-2011
Mensajes: 31
Antigüedad: 13 años, 3 meses
Puntos: 3
Busqueda Respuesta: Menu dinamico en PHP

Cita:
Iniciado por aleksdj Ver Mensaje
Siempre es bueno comprobar la existencia de variables antes de usarlas sobre todo en lenguajes no tipados tipo php, etc.
Yo siempre uso isset, empty y is_null para probar la existencia, algunas veces uno implica el otro. en algunos frameworks te puedes abstraer de esto...
__________________
Las mantas más chulas y baratas en tiradelamanta.com, creada en palbin.com, servicio web para crear tienda online.
  #15 (permalink)  
Antiguo 31/12/2011, 17:21
 
Fecha de Ingreso: marzo-2011
Ubicación: Zacatecas
Mensajes: 59
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Menu dinamico en PHP

Muchas Gracias A Todos! error resuelto

Etiquetas: dinamico
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 19:44.