Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[javascript] Uitvouw menu

Anoniem
royduin
5 antwoorden
  • Hallo,

    ik heb een geslicede layout met twee menu's hierin. Deze menu's werken nu allebei via de php functie: $_GET, elke keer wordt er gecontrolleerd als ?pagina dat is, dan laat hij dat zien… dit moet dus bij elke pagina die geladen wordt gebeuren. Dit vindt ik nogal irritant werken.
    Ik hoorde dat dit via Javascript veel makkelijker is en werkt beter.
    Helaas heb ik zelf niet veel ervaring met javascript en ben ik dus op zoek naar dit script.
    Heeft er hier iemand ervaring met javascript en weet misschien een javascript waarmee ik mijn menu kan maken? Zeg het even, dan geef ik een link met de layout en werkende menu's, alleen wel via GET.

    Waarom plaats ik de link van deze layout niet gewoon hier? omdat ik niet wil dat iedereen deze nu zo ziet en weet dat het menu hiervan door iemand op dit forum gedaan is…

    Ik hoop dat iemand kan helpen
  • Ik denk niet dat wat jij wil eenvoudiger gaat in javascript dan in PHP. Laat eens een stukje (relevante) PHP-code zien waarin je de "?pagina" controleert. Ik vermoed namelijk dat dat een stuk efficiënter kan.
  • Iemand anders heeft het gedaan en volgens mij is het zo verracht als wat..
    [code:1:45ae2255af] if(isset($_GET['pagina']) && !isset($_GET['knop'])) {
    echo '<a href="?pagina=' . $_GET['pagina'] . '&top=subhome"><img class="top" src="img/1.png" alt="Home" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&top=subalgemeen"><img class="top" src="img/2.png" alt="Algemeen" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&top=subservice"><img class="top" src="img/3.png" alt="Service" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&top=subklanten"><img class="top" src="img/4.png" alt="Klanten" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&top=subcontact"><img class="top" src="img/5.png" alt="Contact" /></a>';
    }
    elseif(isset($_GET['knop']) && !isset($_GET['pagina'])) {
    echo '<a href="?knop=' . $_GET['knop'] . '&top=subhome"><img class="top" src="img/1.png" alt="Home" /></a>
    <a href="?knop=' . $_GET['knop'] . '&top=subalgemeen"><img class="top" src="img/2.png" alt="Algemeen" /></a>
    <a href="?knop=' . $_GET['knop'] . '&top=subservice"><img class="top" src="img/3.png" alt="Service" /></a>
    <a href="?knop=' . $_GET['knop'] . '&top=subklanten"><img class="top" src="img/4.png" alt="Klanten" /></a>
    <a href="?knop=' . $_GET['knop'] . '&top=subcontact"><img class="top" src="img/5.png" alt="Contact" /></a>';
    }
    elseif(isset($_GET['pagina']) && isset($_GET['knop'])) {
    echo '<a href="?pagina=' . $_GET['pagina'] . '&knop=' . $_GET['knop'] . '&top=subhome"><img class="top" src="img/1.png" alt="Home" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&knop=' . $_GET['knop'] . '&top=subalgemeen"><img class="top" src="img/2.png" alt="Algemeen" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&knop=' . $_GET['knop'] . '&top=subservice"><img class="top" src="img/3.png" alt="Service" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&knop=' . $_GET['knop'] . '&top=subklanten"><img class="top" src="img/4.png" alt="Klanten" /></a>
    <a href="?pagina=' . $_GET['pagina'] . '&knop=' . $_GET['knop'] . '&top=subcontact"><img class="top" src="img/5.png" alt="Contact" /></a>';
    }
    else {
    echo '<a href="?top=subhome"><img class="top" src="img/1.png" alt="Home" /></a>
    <a href="?top=subalgemeen"><img class="top" src="img/2.png" alt="Algemeen" /></a>
    <a href="?top=subservice"><img class="top" src="img/3.png" alt="Service" /></a>
    <a href="?top=subklanten"><img class="top" src="img/4.png" alt="Klanten" /></a>
    <a href="?top=subcontact"><img class="top" src="img/5.png" alt="Contact" /></a>';
    }
    ?>[/code:1:45ae2255af]

    [code:1:45ae2255af] <?php
    if(isset($_GET['top'])) {
    switch(strtolower($_GET['top'])) {
    case 'subhome':
    echo 'Home';
    break;
    case 'subalgemeen':
    echo 'Over Ons | Servers | Datacenter | FAQ';
    break;
    case 'subservice':
    echo 'Webhosting | Domeinen | Webdesign | Scripting | Programmering';
    break;
    case 'subklanten':
    echo 'Bestellen | Control Panels | Webmail | Helpdesk';
    break;
    case 'subcontact':
    echo 'Contact';
    break;
    }
    }
    else {
    echo 'Home';
    }
    ?>[/code:1:45ae2255af]

    [code:1:45ae2255af] <?php
    if(isset($_GET['top'])) {
    echo '<a href="?top=' . $_GET['top'] . '&pagina=pakket1">';
    }
    elseif(isset($_GET['knop'])) {
    echo '<a href="?knop=' . $_GET['knop'] . '&pagina=pakket1">';
    }
    if(isset($_GET['top']) && isset($_GET['knop'])) {
    echo '<a href="?top=' . $_GET['top'] . '&knop=' . $_GET['knop'] . '&pagina=pakket1">';
    }
    ?>[/code:1:45ae2255af]


    Dit zijn een aantal stukjes, maar er zit nog een kilometer PHP in, bij elk (sub)menu voor alle mogelijkheden is er een stukje PHP.
    Ik vindt het echt brakke gedaan, maar dit werkt wel.
    Alleen het probleem is dat als ik een pagina wil laden dan moet ik al die GET's er achter zetten. Dus moet ik voor elke pagina die geladen wordt weer zo'n hele reeks met PHP neer gooien zodat de menu's op dezelfde plek blijven staan en niet weer sluiten.

    Roy ;)
  • Als ik je goed begijp heb je op verschillende (PHP-)pagina's verschillende menu's nodig. In dit soort situaties maak ik gewoon gebruik van include. In maak allemaal aparte menus.php, bijvoorbeeld indexmenu.php en submenu.php met daarin alleen een rijtje van links (a href="blabla";). Op de verschillende pagina's krijg je dan dit:

    [quote:cbb1a12c0b]<?php
    $hoofdmap="../"
    include($hoofdmap.Menu's/indexmenu.php);
    ?>[/quote:cbb1a12c0b]

    Als je alles via een database oid op één pagina laadt kun je gewoon een if-loop toevoegen. Je hebt dan twee voordelen: als je een keer een menu wilt veranderen hoef je niet al je pagina's stuk voor stuk af te lopen, allen je blamenu.php verander je. Daarnaast blijft je code een stuk opgeruimder. Ik hoop dat dit je probleem is, als ik je niet goed begrepen heb hoor ik je wel…
  • dubbelpostje :oops: …

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.