Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    PHP & menù class="active"

    Ciao a tutti! Sto sviluppando un sito tramite un template di bootstrap. Il Template è in HTML e ho cambiato le varie pagine con estensione .html in .php per poter utilizzare il comando include e avere così un solo file header e un solo file footer per semplificare eventuali modifiche dei due campi su tutte le pagine. Adesso però mi si presenta il problema di come far capire al menù quale voce evidenziare secondo la pagina selezionata. In html è semplice e basta impostare la classe "active" (con il rispettivo css) ad ogni <li> corrispondente alla pagina, ma adesso avendo un menù condiviso con include su tutte le pagine come posso fare per differenziare la voce corretta in base alla pagina scelta? Spero di essermi saputo spiegare bene...
    Grazie
    Damiano

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, potresti usare diverse soluzioni.
    Per esempio se hai delle url tipo http://...../contatti/ , nell'html del menu potresti mettere degli id o data attribute corrispondenti alla sezione
    codice:
    <li id="contatti" class="<?php ...qui il controllo per far scrivere ACTIVE ?>">contatti</li>

  3. #3
    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Ciao, potresti usare diverse soluzioni.
    Per esempio se hai delle url tipo http://...../contatti/ , nell'html del menu potresti mettere degli id o data attribute corrispondenti alla sezione
    codice:
    <li id="contatti" class="<?php ...qui il controllo per far scrivere ACTIVE ?>">contatti</li>
    Ho capito cosa intendi ma non capisco come realizzarlo. Purtroppo sono pratimamente ignorante quasi al 100% per quanto riguarda php

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Non è molto bello ma sembra funzionare.

    File menu000.php

    Codice PHP:
    <LI id='menu1'    class='inactive'>Menù 1</LI>
    <LI id='contatti' class='inactive'>Contatti</LI>
    <LI id='menu2'    class='inactive'>Menù 2</LI>
    <LI id='menu3'    class='inactive'>Menù 3</LI>
    <LI id='menu4'    class='inactive'>Menù 4</LI>
    <script language="JavaScript" type="text/javascript">
    <!--
    document.getElementById('<?php print $id_active ?>').className = 'active';
    //-->
    </script>


    File test813.php
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled</title>
    <style type="text/css">
    <!--
    .active   {background-color:red}
    .inactive {background-color:yellow}
    -->
    </style>
    </head>
    <body>
    <?php 
     $id_active 
    'contatti';
     include(
    'menu000.php');
    ?>
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Intendevo una cosa tipo questa:
    - Pagina corrente: http://..../contatti
    - Da php prendi la url e trovi ad esempio l'occorrenza di "contatti" . Puoi usare parseUrl volendo.
    - Nell'html avrai una voce di menu come mostrato sopra negli esempi: <li id="contatti">Contatti</li>
    A questo punto sempre nello stesso file menu.php senza dover aggiungere altra logica in ogni template per ogni pagina basta fare il controllo con php (usando la funzione parseUrl() dovresti recuperare "contatti" o quel che ti serve).
    codice:
    $path = parse_url($url, PHP_URL_PATH); //$url la tua url e $path sarà la pagina appunto
    <li id="contatti" <?php id($path=='contatti'){echo class="active";}>Contatti</li>
    Più meno così. Ovviamente dovrai fare delle prove per far ritornare correttamente a $path quello ti aspetti.

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.