Gå til innhold

Inkludere og eksludere meny i php


Anbefalte innlegg

Litt vanskelig å konstruerere en veldig forklarende tittel, men her er problemet litt bedre forklart:

 

Har en php-side der jeg inkluderer en "meny.php". Hver av linkene under meny, har submenyer slik at dersom noen trykker på "om meg", så skal en submenu tilhørende "om meg" inkluderes. Koden ser slik ut:

 

$submenu=$_GET["subid"];

<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>
<?php
if($submenu=="ommegmeny"){
 $link= $submenu.".php";
 include($link);
}
?>

 

Dette her har jeg gjort for alle punktene under meny. Alt funker helt fint, eneste problemet er at jeg vil ha undermenyen gjemt dersom man trykker på den samme hovedlinken om igjen, og evt vise submenyen dersom noen trykker en gang til.Dere skjønner bildet.

 

Er det noen som har gode ideer på hvordan dette kan løses enkelt? Jeg er relativ ny i php-programmering, so go easy on me :innocent:

Endret av LBoN
Lenke til kommentar
Videoannonse
Annonse

Hva med denne?

$mainmenu = $_GET['id']
$submenu = $_GET['subid'];

If ($mainmenu == 'ommeg' && $submenu == 'ommegmeny') {
  echo '<a href="index.php?id=ommeg">Nyheter</a>';
  include($submenu.'.php');
} elseif ($mainmenu == 'ommeg' && !isset($submenu)) {
  echo '<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>';
}

 

Vet ikke hent om jeg skjønte situasjonen din korrekt, men det jeg prøvde på her var å inkludere en link som tar deg til index.php?id=ommeg&subid=ommegmeny hvis menyen ikke er ekspandert, og som tar deg tilbake til index.php?id=ommeg hvis den er ekspandert.

Lenke til kommentar

jeg har et lite problem her med koden du foreslo gozzer..

 

Jeg ahr jo flere linker under meny, og alle disse har igjen submeny...

Når jeg trykker på f.eks "om meg" så dukker submenyen opp, men da forsvinner alle de andre linkene...

 

Koden ser sånn ut:


<?php
$submenu = $_GET['subid'];

if ($mainmenu == 'ommeg' && $submenu == 'ommegmeny') {
 echo '<a href="index.php?id=ommeg">Nyheter</a>';
 include($submenu.'.php');
} elseif ($mainmenu == 'ommeg' && !isset($submenu)) {
 echo '<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>';
}

?>

<?php
if ($mainmenu == 'referanser' && $submenu == 'referansemeny') {
 echo '<a href="index.php?id=referanser">Referanser</a>';
 include($submenu.'.php');
} elseif ($mainmenu == 'referanser' && !isset($submenu)) {
 echo '<a href="index.php?id=referanser&subid=referansemeny">Referanser</a>';
}
?>

osv. for de andre linkene..

 

Er det noe logisk feil med koden, siden alle de andre linkene blir borte når den ene submenyen vises etter første trykk, og kommer tilbake når jeg trykker på linken engang til..?

Lenke til kommentar

Hmm... ja, du har vel en logisk feil i det at $main-/$submenu kun matcher én seksjon av gangen, og derfor vil alle de andre if-setningene dine gi falsk.

 

Det du kan prøve, er å legge til en dette under hver av dine else-if

} else {
  echo '<a href="index.php?id=<whatever>">MENYNAVN</a>';
}

 

Altså, hvis vi tar den første if-en din, så blir det

if ($mainmenu == 'ommeg' && $submenu == 'ommegmeny') {
 echo '<a href="index.php?id=ommeg">Nyheter</a>';
 include($submenu.'.php');
} elseif ($mainmenu == 'ommeg' && !isset($submenu)) {
 echo '<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>';
} else {
 echo '<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>';
}

 

Håper - og regner med - at det vil hjelpe deg litt på vei. Du kunne vel løst det med litt andre kondisjoner i elseif-en din også, men da ville den blitt litt tung og ekkel. :-)

 

Edit: Tydligvis veldig vanskelig å klampre på tastene i dag

Endret av gozzer
Lenke til kommentar

Hei og takk igjen! Jo dette så ut til å løse problemet! Tenkte aldri så langt..

 

Nå gjelder det å få ordnet menyen slik at selv om man klikker på en annen "hovedlink"(f.eks" om meg") i menyen så skal ikke en submeny som har vært oppe bli lukket automatisk, med mindre man manuelt klikker på tilhørende hovedlink igjen..(f.eks hvis en hovedmeny som "referanser" og dens submeny har vært åpen før man trykker på "om meg")

 

Dere kan godt hjelpe meg med tips, hvis dere ser at dette kan løse enkelt.. I mellomtida skal jeg prøve litt selv:) Takk for hjelpen din igjen gozzer! :thumbup:

Lenke til kommentar

Bare hyggelig det, veit du :-)

 

Men det nye spørsmålet ditt var litt værre. Du kan jo prøve den koden her selv om jeg er litt usikker ...

// HELT øverst i fila, starter du session
session_start();

// Masse rart i mellom ...

// Menyseksjon 'ommeg'
if ($mainmenu == 'ommeg' && $submenu == 'ommegmeny') {
echo '<a href="index.php?id=ommeg">Nyheter</a>';
$_SESSION['ommegmeny'] = true;
} elseif ($mainmenu == 'ommeg' && !isset($submenu)) {
echo '<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>';
unset($_SESSION['ommegmeny']);
} else {
echo '<a href="index.php?id=ommeg&subid=ommegmeny">Nyheter</a>';
}

// skriver evt. ut submenyen
if (isset($_SESSION['ommegmeny'])) {include($submenu.'.php');}


/* 
Tilsvarende kode for alle de andre menyseksjonene. 
Bytt bare ut navnet på session-variabelen og innholdet og navnet på lenken.
*/

 

 

Edit: Siden du må skrive koden på ny for hvert av menyelementene dine, kan du gjerne bytte ut denne:

// skriver evt. ut submenyen
if (isset($_SESSION['ommegmeny'])) {include($submenu.'.php');}

 

med denne:

// skriver evt. ut submenyen
if (isset($_SESSION['ommegmeny'])) {include('ommegmeny.php');}

 

Evt. så kan du bytte ut alle 'ommegmeny' med $submenu, men lesbarheten er vel litt bedre hvis du kjører ren tekst. Smak og behag.. er vel lettere å kopiere koden hvis du kjører med variabler. *slutte og bable*

Endret av gozzer
Lenke til kommentar

Prøvde koden din gozzer, men det ble ikke noe forandringer fra sist.. Når jeg trykker på en annen hovedlink mens en annen submenu vises fram, så blir denne submenyen automatisk "lukket" ( Det som altså var situasjonen før jeg prøvde den siste koden din..)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...