login  Naam:   Wachtwoord: 
Registreer je!
 Forum

2x switch

Offline lau - 19/08/2006 12:02
Avatar van lauHTML interesse Hoe kan ik deze 2 switches op 1 index.php pagina combineren?

  1. <?php
  2. switch (strtolower($_GET['p'])) {
  3. case 'taal':
  4. $page = "content/taal.php";
  5. break;
  6.  
  7. case 'contact':
  8. $page = "content/contact.php";
  9. break;
  10.  
  11. default:
  12. $page = "content/index.php";
  13. break;
  14. }
  15. include($page);
  16. ?>

en...
  1. <?php
  2. switch (strtolower($_GET['b'])) {
  3. case 'product':
  4. $page = "admin/contact.php";
  5. break;
  6.  
  7. case 'artikel':
  8. $page = "admin/artikel.php";
  9. break;
  10.  
  11. default:
  12. $page = "admin/index.php";
  13. break;
  14. }
  15. include($page);
  16. ?>


Daarbij rekening houdend dat je bij die 2e switch bij het combineren maar 1 default hebt (dus die andere admin/index.php valt weg).
De een is trouwens een ?p=xxx en de ander een ?b=xxx constructie. En beide moeten op de index.php aanwezig kunnen zijn.

6 antwoorden

Gesponsorde links
Offline Stefan14 - 19/08/2006 12:09
Avatar van Stefan14 PHP gevorderde ik denk dat je 2 aparte switch statements zoals je nu hebt beide op index.php moet zetten, en dan na de eerste switch controleren of $page een waarde bevat of nog leeg is, is hij nog leeg, dan de volgende (tweede) switch uitvoeren.

Dit lijkt mij de meest voor de hand liggende oplossing op dit moment.
Offline ikkedikke - 19/08/2006 12:18
Avatar van ikkedikke PHP expert
  1. <?php
  2. switch (1) {
  3. case (strtolower($_GET['b']) == 'product'):
  4. $page = "admin/contact.php";
  5. break;
  6.  
  7. case (strtolower($_GET['b']) == 'artikel'):
  8. $page = "admin/artikel.php";
  9. break;
  10.  
  11. case (strtolower($_GET['p']) == 'taal'):
  12. $page = "content/taal.php";
  13. break;
  14.  
  15. case (strtolower($_GET['p']) == 'contact'):
  16. $page = "content/contact.php";
  17. break;
  18.  
  19. default:
  20. $page = "content/index.php";
  21. break;
  22. }
  23. include($page);
  24. ?>
Ik weet niet of dit nou helemaal de bedoeling is, maar zo had ik het begrepen.
Wat ik me dan wel afvraag is waarom je het niet gewoon in 1 parameter stopt?
Offline lau - 19/08/2006 12:26
Avatar van lau HTML interesse Dus je bedoelt eigenlijk dit:
  1. <?php
  2. if (isset($_GET['p'])) {
  3. ... voer switch met p uit
  4. } elseif (isset($_GET['b'])) {
  5. .. voer switch met b uit
  6. }
  7. ?>


Het werkt wel, maar ik dacht dat er misschien een verkorte vorm van is.
Offline Wim - 19/08/2006 12:57
Avatar van Wim Crew algemeen nee want bij p wordt die index dan geinclude 

ikkedikke zijn scriptje lijkt me beter..
Offline lau - 19/08/2006 13:29
Avatar van lau HTML interesse waarom ik het niet in 1 parameter stop?
Nou.... komt omdat ik eenmaal ben begonnen met 2x zelfde gegevens... dus voor beheer ?b=artikel en voor content (voor bezoekers) ?p=artikel. Vanwege dat ik deze 2 identiek heb zitten kan ik het niet in 1 parameter stoppen.

BTW... waar staat switch (1) voor?
Offline ikkedikke - 19/08/2006 14:48 (laatste wijziging 19/08/2006 14:49)
Avatar van ikkedikke PHP expert je kan ook switch(true) doen.
het enige wat een switch eik doet:
switch(linkerkant_van_de_voorwaarde)
case rechterkant:
...
break;

die kijkt voor iedere case of (linkerkant_van_de_voorwaarde == rechterkant) == true.

de linkerkant is hier 1 (of true) en de rechterkant is een voorwaarde opzich. als die voorwaarde dus true geeft, krijg je true == true en dan wordt de code tussen die case en de break uitgevoerd.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s