Som Daniel Mautone fint pointere, er der problemer med dine logiske operatorer.
!= betyder IKKE lig med.
== betyder lig med.
Af samme årsag oplever du fejl i dit script, da du har bedt dit script udføre noget andet, end hvad du havde i tankerne.
Hvis du beder du script om, at tilføje klassen "current" på de sider, der ikke er lig dine strenge i dine kontrol-statements (if, elseif, else), er det klart, at de får klassen "current", når ikke du er på den side, som du har angivet i din streng.
Som dit script er nu, sker følgende:
Hvis $_GET key'en "side" ikke er sat, skal "forside" være current.
Hvis $_GET key'en "side" IKKE er lig "test", skal "test" have klassen current.
Hvis $_GET key'en "side" IKKE er lig "kontakt", skal "kontakt" have klassen current.
Hvad du vil ende op med, vil være omvendt - ihvertfald for de to punkter, der kræver en hvis værdi:
Hvis $_GET key'en "side" ER LIG "test", skal "test" have klassen current.
Eller hvis $_GET key'en "side" ER LIG "kontakt", skal "kontakt" have klassen current.
Du kunne også gøre brug af et switch statement.
Du kan eventuelt tage udgangspunkt i følgende eksempel:
- <?php
- $current = '';
- switch($_GET['side'])
- {
- case 'test' :
- $current = 'test';
- break;
- case 'kontakt' :
- $current = 'kontakt';
- break;
- default:
- $current = 'forside';
- break;
- }
- echo ($current == 'test') ? 'class="current"' : '';
- ?>
-
- <li>
- <a href="/" <?php echo ($current == 'forside') ? 'class="current"' : ''; ?>>Forside</a>
- </li>
- <li>
- <a href="?side=test" <?php echo ($current == 'test') ? 'class="current"' : ''; ?>>Test</a>
- </li>
- <li>
- <a href="?side=kontakt" <?php echo ($current == 'kontakt') ? 'class="current"' : ''; ?>>Kontakt</a>
- </li>
Indlæg senest redigeret d. 07.01.2014 04:48 af Bruger #16122