Ik heb op mijn website een overzichtje van producten. Nu heb ik het (met behulp van deze site) zo gemaakt dat er geordend kan worden op enkele criteria en ook nog op ASC of DESC. Een url kan er dan dus bijvoorbeeld als volgt uitzien:
1. www.site.nl/index.php?order=beoordeling
2. www.site.nl/index.php?order=beoordeling&sort=DESC
Dit werkt gewoon goed als ik zoiets dus invoer in de adresbalk. Het is natuurlijk echter niet de bedoeling dat de bezoekers zo'n adres helemaal gaan intikken. Het is juist de bedoeling dat de links automatisch goed gezet worden. Heeft de bezoeker bijvoorbeeld op de link "Ordenen op beoordeling" geklikt, dan moet www.site.nl/index.php?order=beoordeling geladen worden. Klikt hij daarna nog een keer op die link, dan moet er echter www.site.nl/index.php?order=beoordeling&sort=DESC geladen worden. Kan iemand mij misschien vertellen hoe ik dit het beste kan doen?
Hmm, ik dacht het helemaal werkte, maar dat is helaas niet zo. Zodra de bezoeker voor de eerste keer op die pagina komt is $_GET['sort'] namelijk nog niet gezet (www.site.nl/index.php?order=beoordeling). Dan werkt het dus nog niet.
Ik heb nu jouw code ook verwerkt, maar het werkt helaas niet.
Nu staat er dus dit:
<?php
if (!isset($_GET['sort']))
{
$_GET['sort'] = 'ASC';
}
?>
<th><a href="?order=product&sort=<?php echo ($_GET['sort']=='ASC') ? 'DESC' : 'ASC'; ?>">Product</a></th>
Ik ben er nu zo mee bezig dat ik ook niet meer echt logisch na kan denken zeg. Ik hoop dat jullie nog kunnen helpen. Mocht dit niet het geval zijn, dan ga ik er morgen weer met een frisse blik naar kijken.
Aan de hand van die tutorial heb ik dus het scriptje gemaakt. Ik had eerst zelf wel al iets gemaakt, maar het scriptje uit die tutorial is beter.
Ik heb het nu gewoon als volgt:
<?php echo (isset($_GET['sort'])) && ($_GET['sort']=='ASC') ? 'DESC' : 'ASC'; ?>
Dit werkt gewoon goed. Eerst leek het alleen niet te werken doordat ik ook mooie urls gebruik met behulp van htacces. Nu herkende hij de $_GET waardes niet op die manier. Nu ik het echter met een oude url als www.site.nl/index.php?cat=boeken&subcat=woordenboeken&order=beoordeling&sort=ASC doe werkt het wel gewoon.
Hmm, nu heb ik alleen nog 1 probleem. Er kan op drie criteria gesorteerd worden, namelijk naam, aantal en beoordeling. Nu heb ik bij alle drie de links dezelfde code geplaatst, maar dat werkt dus niet helemaal goed. Als de url namelijk op bijvoorbeeld order=beoordeling&sort=DESC staat, dan moet de link om te sorteren op beoordeling op ASC staan, maar de andere 2 links gewoon nog op DESC. Snappen jullie wat ik bedoel?
Ik moet nu even weg, maar hoop dat jullie er ook over willen nadenken. Ik ga er zodra ik tijd heb natuurlijk ook weer zelf naar kijken.
Edit:
Ik ben nu weer even bezig met stoeien en heb nu de volgende 3 links:
Het werkt nu bijna helemaal goed, op 1 orden foutje na. Zodra ik bijvoorbeeld op aantal geordend heb, dan moeten de 2 andere links standaard op ASC staan, maar dit is bij ordenen op product niet het geval. Deze staat namelijk op DESC. Ik probeer het nu dus op te lossen door steeds met de verkorte if / else notatie te werken, maar volgens mij kan dat gewoon niet. Het ordenen op product heeft namelijk best wat 'condities'. Zo moet er bijvoorbeeld als je op http://www.site...rdenboeken bent het ordenen op product op DESC staan, maar zodra er op een andere criteria geordend wordt moet het op ASC gezet worden.