Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: menu con variabile

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    226

    menu con variabile

    ciao a tutti
    premetendo che il php non è il mio linguaggio di programazione....quindi non sono molto brava.

    Ho un menu fatto in css:
    codice:
    ul#navlist
    {
    margin-left: 0;
    padding-left: 0;
    white-space: nowrap;
    font-weight: bold;
    }
    
    #navlist li
    {
    display: inline;
    list-style-type: none;
    }
    
    #navlist a { padding: 3px 10px; }
    
    #navlist a:link, #navlist a:visited
    {
    color: #730400;
    background-color: #E7C35A;
    text-decoration: none;
    }
    
    #navlist a:hover
    {
    color: #E7C35A;
    background-color: #FF0000;
    text-decoration: none;
    }
    collegato alle pagine web tramite include di questa pagina web:
    codice:
    <ul id="navlist">
    <li id="active">CHI SIAMO[*]CHI SIAMO[*]CHI SIAMO'[*]CHI SIAMO[*]CHI SIAMO[*]CHI SIAMO[*]CHI SIAMO[*]CHI SIAMO[*]SU CHI SIAMO
    adesso vorrei passare una variabile di pagina da agni pagina in modo che l'utente quando si trova su una pagina abbia il tasto del menù evidenziato di un colore diverso.

    Per es. se siamo sulla pagina contatti vorrei che il tasto della pagina contatti invece di giallo (come è adesso) diventasse rosso.

    Come devo inpostare il menu???
    Qualcuno mi può aiutare con il codice.

    elena

  2. #2
    la variabile $_SERVER['PHP_SELF'] ti restituisce il percorso del file attuale. Con la funzione basename ottieni il nome del file attuale.

    in pratica

    $pagina = basename($_SERVER['PHP_SELF']

    $pagina conterrà il nome della pagina aperta.

    Però per fare quello che dici, dovresti fare una navigazione dinamica.

  3. #3
    Si, dovresti in effetti mettere i link ed i testi del link in un array.
    Poi confrontare ogni riga dell'array con il nome della pagina.

    Proviamo a buttare giù del codice.

    Codice PHP:

    // crei un array dove associ i link alle etichette dei bottoni
    $array_menu = array(
     
    "chi_siamo.php" => "Chi Siamo",
     
    "ultime_novita.php" => "Ultime Novit&agrave;",
     
    "ordine.php" => "Ordine",
     
    "contatti.php" => "Contatti",
    );

    // prelevi il nome della pagina visualizzata dalla URL
    $pagina_visualizzata basename($_SERVER['PHP_SELF'];

    // inizializzi l'elenco non ordinato per creare il menu
    echo "<ul>";

    // cicli l'array per creare le voci del menù
    while(list($url$label) = each($array_menu)) {

     if (
    $url == $pagina_visualizzata){
    // la URL dell'array corrisponde alla pagina
    // devo segnalare al CSS di associare uno stile
    // particolare
    echo "
         <li id=\"active\">
            <a href=\"
    $url\">$label</a>
        

    "

    } else {
    // altrimenti uso lo stile normale
    echo "[*]
            <a href=\"
    $url\">$label</a>
        

    "

     }
    }
    // esco dal ciclo WHILE

    // chiudo l'elenco non ordinato 
    echo "[/list]"
    Ho scritto al volo, e senza provare, ma dovrebbe funzionare.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    226
    ciao

    ho sostituito questo codice a quello della pagina include.php

    codice:
    $array_menu = array( 
    "http://xxxxx/chi-siamo.php" => "CHI SIAMO", 
    "http://xxxx/galleria.php" => "GALLERIA",
    "http://xxxx/ultime-novita.php" => "NOVITA'", 
    "http://xxxx/new-antiques.php" => "TRENDY", 
    "http://xxxxx/ordina.php" => "ORDINA", 
    "http://xxxxx/contatti.php" => "CONTATTI", 
    "http://xxxxx/contatti.php" => "BLOG", 
    "http://xxxx/faq.php" => "F.A.Q.", 
    "http://xxx/" => "xxxxxx", 
    ); 
    
    
    $pagina_visualizzata = basename($_SERVER['PHP_SELF']; 
    
    
    echo "<ul id="navlist">"; 
    
    
    while(list($url, $label) = each($array_menu)) { 
    
    if ($url == $pagina_visualizzata){ 
    
    echo " 
         <li id=\"active\"> 
            <a href=\"$url\">$label</a> 
         
    
    "; 
    } else { 
    
    echo " 
         <li id=\"part"\> 
            <a href=\"$url\">$label</a> 
         
    
    "; 
    } 
    }
    
    echo "[/list]";
    ma mi stampa a video la descrizione pari pari......cioè non esegue i comandi ma stampa quello che ho scritto nel ciclo
    quindi
    codice:
    $array_menu = array( 
    "http://xxxxx/chi-...........ecc
    qualcuno mi può spiegare perchè.

    Entrambe le pagine sono .php, nella index ho il comando
    codice:
    <?php include("head.php");?>
    non capisco perchè non esegue il comando.

  5. #5
    L'unica possibilità che vedo sul perché ti stampa il codice a video é che non hai racchiuso il codice tra i tag <?php ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    226
    e vero non ci avevo pensato



    adesso però ho un altro problema.........mi da questo errore:
    codice:
    Parse error: parse error, unexpected ';' in /var/www/vhosts/xxxxx/httpdocs/head.php on line 15

    la linea 15 se non ho sbagliato a contare:
    $pagina_visualizzata = basename($_SERVER['PHP_SELF'];



    :master: :master: :master:

  7. #7
    non hai chiuso la parentesdi tonda dopo la quadra

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    226



    mi da ancora errori.

    prima mi dava errore alla riga 18........io ho sostituito le virgolette con apici.
    codice:
    $pagina_visualizzata = basename($_SERVER['PHP_SELF']); 
    
    
    echo '<ul id="navlist">'; 
    
    
    while(list($url, $label) = each($array_menu)) { 
    
    if ($url == $pagina_visualizzata){ 
    
    echo ' 
         <li id=\"active\"> 
            <a href=\"$url\">$label</a> 
         
    
    '; 
    } else { 
    
    echo ' 
         <li id=\"part"\> 
            <a href=\"$url\">$label</a> 
         
    
    '; 
    } 
    }
    
    echo '[/list]';
    ?>
    adesso mi dà tutti i tasti con scritto '$label', quindi non prende i nomi della pagina e neanche i collegamenti.

  9. #9
    se metti gli apici devi togliere i \ dove hai le virgolette

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    226
    codice:
    $pagina_visualizzata = basename($_SERVER['PHP_SELF']); 
    
    
    echo '<ul id="navlist">'; 
    
    
    while(list($url, $label) = each($array_menu)) { 
    
    if ($url == $pagina_visualizzata){ 
    
    echo ' 
         <li id="active"> 
            $label 
         
    
    '; 
    } else { 
    
    echo ' 
         <li id="part"> 
            $label 
         
    
    '; 
    } 
    }
    
    echo '[/list]';
    ?>
    ho tolto gli apici........stesso problema mi stampa $label nei tasti e non ci sono i collegamenti.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.