realizzare menu dinamico

salve,

forse la mia domanda è assurda vorrei sapere se è possibilefarlocon php.

ho un menu e vorrei che fosse colorato diversamente sono il link relativo che mi ha portato nella sezione attuale!

menu:

pagina1

pagina2

pagina3

pagina4

clicco su pagina2, quindi mi trovo nella pagina2

e il menu diventa

pagina1

pagina2

pagina3

pagina4

clicco su pagina3, quindi mi trovo nella pagina3

e il menu diventa

pagina1

pagina2

pagina3

pagina4

e cosi via..

se potete datemi una mano grazie mille :bye:

inviato 9 anni fa
buongiorno
X 0 X

Si, si può fare. Per prima cosa devi creare il menù dinamicamente, ovvero attraverso tante echo (o funzioni simili).

Durante questo processo devi verificare se la pagina corrente è quella del link che stai per creare. In tal caso il link andrà creato diversamente, aggiungendo un colore o uno stile adeguato.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

quindi se ho tre pagine che devono visualizzare lo stesso menu devo riportare sempre lo stesso pezzo di codice??

risposto 9 anni fa
buongiorno
X 0 X

si, oppure scriverlo in un file ed includero in tutte e tre le pagine.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Non necessariamente devi per forza riscriverlo ogni volta.

Puoi usare un trucco, quello che poi usano tutti, ovvero la get sull'url.

Intanto il menù non devi riscriverlo su ogni pagina, ma lo metti di fuori e poi lo includi nelle pagine, così lo scrivi una volta sola.

Poi all'interno del menù realizzi un ciclo for che legge le voci del menù ad esempio da un array, all'interno del ciclo, una condizione controlla che la variabile get non coorrisponda alla voce di menù in ballo in quiel momento, se sì, mette una classe in css che evidenzia la voce.

Esempio:

// Array con le voci del menù:
$menu = array(1 => array ('home page','./?pagina=1'), 
                         2 => array('link','./link/?pagina=2'), 
                         3 => array('contatti','./contatti.php?pagina=3'), 
                         eccetera);

// ciclo che costruisce il menù:
for ($index = 0; $index <= count($menu) - 1; $index++) 
  if ($_GET['pagina'] == $index) 
      echo "<li class='colora'><a href='{$menu[$index]}' title=''>{$menu[$index][0]}</a></li>\n";
  else echo "<li><a href='{$menu[$index]}' title=''>{$menu[$index][0]}</a></li>\n";

Ovviamente va un po' migliorata la gestione dell'array multidimensionale, l'ho buttato giù di corsa :) manca il foglio di stile, ma quello lo recuperi qui per il resto c'è tutto.

risposto 9 anni fa
Marco Grazia
X 0 X

grazie di aver risposto.

allora poichè non so molto di php devo chiedertialcune cose.

i menu in realtà ne ho due tipo:

menu1

menu2

menu3

se clicco su menu1-->chi siamo

                                  contatti

quindi in un primo momento si deve bloccare menu1 poi magari chi siamo, ovviamente se ho cliccato chi siamo. Adesso i vari menu sono inseriti inseriti come liste in file html separati, quindi ho solo fatto un include, adesso non capisco come sostituire questi file con il menu scritto nel codice.

risposto 9 anni fa
buongiorno
X 0 X

Ti dico la verità, non ho capito nulla di ciò che hai detto, comunque:

Un menù come lo vuoi tu (fa anche rima), cioè con sezioni che si aprono quando ci passi col mouse, lo fai direttamente con i fogli di stile, senza PHP e senza Javascrit, ma solo xhtml e css, per il resto è una lista come tutte le altre, quindi la tratti sempre allo stesso modo.

Vorrà dire che al menù principale sarà applicata una classe e a quello secondario un'altra classe, per una serie di esempi guarda qui: http://www.google.it/search?hl=it&q=men%C3%B9+con+css&btnG=Cerca+con+Google&meta=

In ogni caso considera che il contesto relativo al lato client esula da questo forum.

risposto 9 anni fa
Marco Grazia
X 0 X

scusami forse mi sono espressa male, non voglio che al passaggio del mouse si apre una tendina con i nuovi link ma voglio che cliccando su un link questi rimanga evidenziato; la domanda precedente era:

poichè io ho fatto questo menu usando una semplice lista quando tu mi scrivi:

menu = array(1 => array ('home page','./?pagina=1'),

                         2 => array('link','./link/?pagina=2'),

                         3 => array('contatti','./contatti.php?pagina=3'),

                         eccetera);

non capisco bene come devo riorganizzare quello che ho già fatto.

grazie

risposto 9 anni fa
buongiorno
X 0 X

Scusate, ma non è meglio gestirlo con un foglio di stile? uno stile che si applica sul tag del menu...

risposto 9 anni fa
cybaSsh
X 0 X

bene mi sai dire come faccio a fare ciò senza ricopiare il codice in tutte le pagine??

nb. scusatemi se questa discussione non è inerente con php

risposto 9 anni fa
buongiorno
X 0 X

PHP inceve centra eccome, altrimenti chi realizza la logica per cambiare lo stile all'elemento del menu che punta alla pagina corrente?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

bene mi sai dire come faccio a fare ciò senza ricopiare il codice in tutte le pagine??

nb. scusatemi se questa discussione non è inerente con php

Be come ti ho esposto io, e comunque con un include del file contenete il menù.

risposto 9 anni fa
Marco Grazia
X 0 X

ok grazie mille di aver risposto.

ti dispiace se riprendiamo la discussione dal tuo post dove cistà del codice??

allora io ho un menu così composto:

menu1

menu2

menu3

adesso cliccando su menu 1 deve succedere questo:

menu 1 --> chi siamo

                   dove siamo

menu 2

menu 3

per poter costruire un menu del genere tu mi dici di usare un array bidimensionale quindi odvrei avere una situazione del genere:

$ esterno= array("menu1"=>array("chi siamo", dove siamo),

                            "menu2",

                            "menu3");

dopo aver fatto ciò dovrei inserire la rimanenete parte di codice.

correggimi se sbaglio. grazie

risposto 9 anni fa
buongiorno
X 0 X

salve,

sn riuscita a bloccare il colore del link più esterno inserendo il nome sd ogni pagina e facendo un if nel file che conteneva il menu, adesso però  ho per alcuni link anche un sotto menu e quando clicco una voce di questi il colore dal link esterno scompare.

domanda: e' possibile lasciare colorati sia il link interno che quello esterno???

grazie mille ciao

risposto 9 anni fa
buongiorno
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili