login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Submenu

Offline mbeek - 12/05/2009 18:55
Avatar van mbeekNieuw lid Hallo,

Aan de linkerkant van mijn website heb ik een navigatie gedeelte. Er staat bijvoorbeeld BOUWJAAR. Als daar opgeklikt wordt , word er een submenu geopend.

Dan staat er:

BOUWJAAR
* 2004
* 2005
* 2006

Dat gaat goed, dat doe ik met onderstaande code:

  1. <?php
  2. $sub = $_GET["sub"];
  3. ?>
  4. <a href="<?php $_SERVER['REQUEST_URI']; ?>?&sub=bouwjaar"><b>BOUWJAAR</b></a><br>
  5.  
  6. <? if ($sub == "bouwjaar"){
  7.  
  8. //hier code voor de items in het submenu
  9.  
  10. }
  11. ?>


Opzich gaat het goed. Echter heb ik nu:

<a href="<?php $_SERVER['REQUEST_URI']; ?>?&sub=bouwjaar">

Dat werkt wel, maar niet als ik op een pagina reeds andere variabelen heb staan.

Als ik bijvoorbeeld op pagina test.php?hcat=1&scat=2 zit en dan dus op BOUWJAAR klik dan gaat hij naar test.php?sub=bouwjaar

Terwijl hij dan naar test.php?hcat=1&scat=2&sub=bouwjaar zou moeten gaan.

Wat doe ik fout?

10 antwoorden

Gesponsorde links
Offline Sar - 12/05/2009 19:05
Avatar van Sar PHP interesse Zo?:

  1. <?php
  2. $sub = $_GET["sub"];
  3. $url = (count($_GET) == 0) ? $_SERVER['REQUEST_URI']."?sub=bouwjaar" : $_SERVER['REQUEST_URI']."&sub=bouwjaar";
  4. ?>
  5. <a href="<=$url;?>"><b>BOUWJAAR</b></a><br>
  6.  
  7. <? if ($sub == "bouwjaar"){
  8.  
  9. //hier code voor de items in het submenu
  10.  
  11. }
  12. ?>

Offline mbeek - 12/05/2009 19:19
Avatar van mbeek Nieuw lid Dat werkt gedeeltelijk.

Ik heb het nu zo. Ik heb er een check ingebouwd, want als het submenutje is geopend wil ik hem ook weer kunnen sluiten.

  1. <?php
  2. if(isset($_GET['sub'])) {
  3. echo '<a href="http://www.sad.nl/sdf/sd/index.php"><b>Bouwjaar</b></a><br>';
  4. }else{
  5. $url = (count($_GET) == 0) ? $_SERVER['REQUEST_URI']."?sub=bouwjaar" : $_SERVER['REQUEST_URI']."&sub=bouwjaar";
  6. echo '<a href="'.$url.'"><b>Bouwjaar</b></a><br>';
  7. }
  8. ?>


Stel ik bevind me op test.php?hcat=1&scat=2

en open dan het menu dan doet hij netjes: test.php?hcat=1&scat=2&sub=bouwjaar

Perfect.

Alleen wil ik als ik op een andere pagina klik bijvoorbeeld zoek.php dan dat dan wordrt gechecked op de sub is geset , en dat hij dan wordt meegenomen , snap je!?

Dus stel ik zit op index.php?sub=bouwjaar en klik dan op een link die naar zoek.php gaat, dat hij dan die sub meeneemt.

Of is dat lastig?

Misschien is er een eenvoudigere manier om met submenu's te werken? Want uiteindelijk wil ik een stuk of 5 submenu's op mijn site.
Offline Sar - 12/05/2009 19:32 (laatste wijziging 12/05/2009 19:33)
Avatar van Sar PHP interesse Je zou het dan in een sessie of cookie kunnen opslaan:
  1. <?php
  2. if(isset($_GET['sub'])) {
  3. $_SESSION['sub'] = $_GET['sub'];
  4. }
  5. ?>


en om te kijken of het menu open of dicht is:

  1. <?php
  2. if($_SESSION['sub'] == "bouwjaar")
  3. echo "Open";
  4. else
  5. echo "Dicht";
  6. ?>


Wel bovenaan elke pagina waarin je de sessie wilt gebruiken het volgende neerzetten:

Offline mbeek - 12/05/2009 19:46
Avatar van mbeek Nieuw lid Thanks. Dat gaat denk ik wel werken. Echter ik heb nu dit:

  1. <?php
  2. if(isset($_GET['sub'])) {
  3. $_SESSION['sub'] = $_GET['sub'];
  4. }
  5. ?>
  6.  
  7. <?php
  8. if($_SESSION['sub'] == "bouwjaar") {
  9. $unset = unset($_SESSION['sub']);
  10. echo '<a href="'.$unset.'"><b>Bouwjaar</b></a>';
  11.  
  12. //menu items
  13.  
  14. }
  15. else {
  16. $url = (count($_GET) == 0) ? $_SERVER['REQUEST_URI']."?sub=bouwjaar" : $_SERVER['REQUEST_URI']."&sub=bouwjaar";
  17. echo '<a href="'.$url.'"><b>Bouwjaar</b></a><br>';
  18. }
  19. ?>


Wat doe ik fout??

Misschien is het overigens overbodig om met een $_GET te werken of niet, alleen Sessies kan misschien ook wel !?
Offline Sar - 12/05/2009 20:18
Avatar van Sar PHP interesse
mbeek schreef:
Wat doe ik fout??


Wat gaat er fout?

mbeek schreef:
Misschien is het overigens overbodig om met een $_GET te werken of niet, alleen Sessies kan misschien ook wel !?


Maar de sessie variabele moet wel ergens de gegevens weghalen, vandaar de GET...
Offline mbeek - 12/05/2009 21:49 (laatste wijziging 12/05/2009 21:50)
Avatar van mbeek Nieuw lid Ok.

Nouja het gaat fout bij de unset.


<?php
if($_SESSION['sub'] == "bouwjaar") {
$unset = unset($_SESSION['sub']);
echo '<a href="'.$unset.'"><b>Bouwjaar</b></a>';

Krijg:
Parse error: syntax error, unexpected T_UNSET

Wat doe ik fout?
Offline Sar - 12/05/2009 23:36
Avatar van Sar PHP interesse Waarvoor gebruik je de unset?
Offline mbeek - 12/05/2009 23:39
Avatar van mbeek Nieuw lid Waarvoor? Om het submenu weer dicht te klappen. Hoe moet je dat anders doen...
Offline Sar - 12/05/2009 23:44 (laatste wijziging 12/05/2009 23:45)
Avatar van Sar PHP interesse $_SESSION['sub'] = "";

edit:
Zet anders je volledige code even hier of op Plaatscode indien het te lang is...
Dan is het makkelijker na te kijken!
Offline mbeek - 12/05/2009 23:45 (laatste wijziging 12/05/2009 23:59)
Avatar van mbeek Nieuw lid Hmmz,

Hoe moet ik dat dan in die <a href=""> verwerken?

EDIT:

Ja ik had het nu zo, maar werkt ook niet helemaal fijn:

  1. <?php
  2. if(isset($_GET['sub'])) {
  3. $_SESSION['sub'] = $_GET['sub'];
  4. }
  5.  
  6. ?>
  7.  
  8. <?php
  9.  
  10. if($_SESSION['sub'] == "voor") {
  11. $url = (count($_GET) == 0) ? $_SERVER['REQUEST_URI']."?unset=voor" : $_SERVER['REQUEST_URI']."&unset=voor";
  12. echo '<a href="'.$url.'"><b>VOOR</b></a><br>';
  13.  
  14. // menu items
  15.  
  16. }
  17. else {
  18. $url = (count($_GET) == 0) ? $_SERVER['REQUEST_URI']."?sub=voor" : $_SERVER['REQUEST_URI']."&sub=voor";
  19. echo '<a href="'.$url.'"><b>VOOR</b></a><br>';
  20. }
  21.  
  22. if( isset($_GET['unset']) && isset($_SESSION['sub'])) { unset($_SESSION['sub']);
  23.  
  24. header('Location: '.$_SERVER['REQUEST_URI']);
  25.  
  26. }
  27. ?>


EDIT: Ik wil dus dmv van de a href het menu weer sluiten en de sessie dus weghalen. Want anders kan het toch niet?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.498s