Hi!
Also derzeit ist es wie folgt:
- ohne Javascript -
- Mit JavaScript -
Mit und ohne Javascript ist im Grunde egal. Beim Webserver kommt in jedem Fall nur ein Request an, und der muss in beiden Fällen seine Parameter in ähnlicher Weise übergeben.
Da eine Detailseite stets eine eindeutige URL besitzt, kann auch diese gebookmarked werden.
Was nicht moeglich ist - und meiner Meinung nach auch nicht Ziel sein sollte - ist das Bookmarken einer Detailseite inklusive der - moeglicherweise(!) - zuvor abgesetzten Suche.
Doch, warum nicht? Du hast die URL der Detailseite. In der ist alle relevante Information für die Haupt-Funktionalität im Pfadteil untergebracht. Man kann da auch ganz gut noch im Such-Fall einen Querystring mit den Suchparametern anhängen.
Das heisst also, die Blaetterfunktion auf den Detailseiten wird somit nur dann eingeblendet, wenn zuvor eine Suche abgesetzt wurde.
Eben. Und wenn man es wie eben vogeschlagen umsetzt: ohne Querystring: "einfache" Detailseite - mit Querystring: Detailseite mit Blätterelementen.
- Detailseite schaut, ob $_SESSION['filter_criteria'] existiert
- Wenn, dann Links zum Vor- und zurueckblaettern einbinden
So, und genau zwischen 7 und 8 liegt mein derzeitiges Fragezeichen.
Woher weiss ich an dieser Stelle, welches Farhzeug als naechstes/vorheriges dran ist?
Eine sortierte Menge hast du ja vorliegen, beziehungsweise weißt, wie du sie für die erste Liste erstellen musst. Der Datensatz davor ist der mit dem größten Wert im Sortierkriterium, der kleiner als der vom aktuellen Item (Fahrzeug) ist. Der danach ist dann der kleinste von denen, die größer sind. Wenn die Werte gleich sind, hat man sowieso eine undefinierte Reihenfolge und darf sich nicht über Unregelmäßigkeiten beim Blättern wundern. Da muss man dann das Sortierkriterium um etwas "vereindeutigendes" erweitern (und wenn man dafür die ID missbraucht, wenn sich nichts besseres finden lässt).
Was mir daran allerdings ein wenig aufstoeszt, ist, dass ich somit auf der Detailseite zwei Mal die Suche absetzen muss (einmal um den vorherigen Datensatz zu ermitteln, und das zweite Mal fuer den naechsten Datensatz). Da die Suche recht komplex ist, habe ich hier ein paar designtechnische Bedenken.
Indexe helfen bei Suchaktionen in vielen Anwendungsfällen, wenn man sie gesetzt hat. Ob sie verwendet werden, kann man unter MySQL mit EXPLAIN ermitteln. Andere Systeme bieten meist auch solche Query-Analyse-Tools. Um zwei Abfragen wirst du nicht umhin kommen, aber du kannst sie mit UNION zu einem Request zusammenfassen.
Lo!