• Super User

    menu e sottomenu visibili nella stessa pagina

    Ciao ragazzi. Sto facendo un sito in php dopo che qualcuno di voi mi ha fatto conoscere l'include, data la comodità insita dell'include neò dover aggiungere un link nuovo non tutte le pagine, ma solo nel relativo file.inc.
    Ora ho quewst'altra esigenza. Faccio direttamente l'esempio perchè è più facile a vedersi. Ho la seguente pagina

                                       RISTORANTI ITALIANI
    

    tutti i migliori ristoranti nelle città e regioni italiane

    ristoranti in lombardia
    ristoranti in basilicata
    ristoranti in piemonte
    ristoranti in toscana
    risatoranti in puglia

    ....e così via

    E' un menù importato con l'include.

    Ora voglio far si che cliccando su una regione, **nella stessa pagina in cui mi trovo **, cambi solo lo stato del menu, e compaiano le rispettive città: esempio se clicco su basilicata voglio succeda questo

    ristoranti in lombardia
    ristoranti in basilicata
    --------------ristoranti a matera
    --------------ristoranti a potenza
    ristoranti in piemonte
    ristoranti in toscana
    risatoranti in puglia

    Come faccio?


  • Super User

    <?
    if ($_SERVER['PHP_SELF']=='nomepaginasezione1.php')
    stampa sottomenu sezione 1

    if ($_SERVER['PHP_SELF']=='nomepaginasezione2.php')
    stampa sottomenu sezione 2

    poi, puoi articolarlo considerando anche le sotto pagine.

    il metodo migliore a mio avviso però è inserire la struttura in un database (o ricrearlo con un array in modo da avere dei dati legati in qualche modo.

    ponendo di avere solo due livelli di menu:
    menu[0]=array('','primo');
    menu[1]=array('','secondo');
    menu[2]=array('','terzo');

    menu[3]=array('primo','primo sottomenu');
    menu[4]=array('primo','secondo sottomenu');
    menu[5]=array('primo','terzo sottomenu');

    e via dicendo.

    questa soluzione però NON MI PIACE PER NIENTE perchè dovresti fare un continuo confronto di stringhe (operazione lenta!).

    evolvendo il ragionamento puoi usare un array a 4 dimensioni e quindi inserire un indice numerico che identifica in modo univoco ogni voce di menu, a questo punto fatti una tabella in un db e risolvi il problema 😄

    ?>


  • Super User

    grazie mille Tymba :D. Gentilissimo ed espertone 😉


  • Super User

    @Tymba said:

    <?
    if ($_SERVER['PHP_SELF']=='nomepaginasezione1.php')
    stampa sottomenu sezione 1

    if ($_SERVER['PHP_SELF']=='nomepaginasezione2.php')
    stampa sottomenu sezione 2

    Ok, sto provando ad applicare il tutto con invece dell'istruzione di stama, un menu esterno relativo:

    include("menu.html");

    Ho problemi con la condizione dell'if e molto probabilmente dell'url che metto sotto condizione! Sicuro che è quello il modo di farlo?

    Ho provato anche a mettere i percorsi assoluti ma nisba.

    Il problema tra l'altro di mettere 'nomepaginasezione2.php' semplicemente è anche questo: se 'nomepaginasezione2.php' si chiama index, come avviene per le index di sessione, non faccio un groviglio tra le condizioni?

    Help :D!!!


  • Super User

    Provato a mettere il menu in un file php e richiamarlo così:

    <? include "menu.php"; ?>


  • Super User

    @Il_Rappo said:

    Provato a mettere il menu in un file php e richiamarlo così:

    <? include "menu.php"; ?>

    si certo :), questa è una parte però :)! Bisogna ora impostare la condizione che tale menu deve essere visibile solo in alcune pagine (per essere dinamico :1:

    Qualcuno sa come fare :)?