form-Element.
Genau daraus entsteht das Problem. Ein abgesendetes Formular überträgt nur seine eigenen Felder. Die Seite lädt neu, und alles, was in den anderen Formularen stand, ist weg. Wer erst sortiert und dann filtert, verliert die Sortierung. Wer dann den Suchbegriff ändert, verliert beides.

Drei Wege, und wann welcher passt
Die ersten beiden Wege lösen das Problem an der Wurzel, der dritte umgeht es. Prüfen Sie deshalb in dieser Reihenfolge.
Weg 1 und 2: ein Formular, verteilte Bedienelemente
Einform-Element darf im HTML an beliebiger Stelle stehen und über die ganze Seite reichen. Oft scheitert das nur daran, dass die Bedienelemente in verschiedenen Layoutbereichen sitzen.
Dafür gibt es das form-Attribut. Jedes Bedienelement nennt darin die id des Formulars, zu dem es gehört, und darf dann irgendwo auf der Seite stehen:
Weg 3: Werte in den anderen Formularen mitführen
Lässt sich ein Bedienelement nicht umhängen, bekommt jedes andere Formular eine versteckte Kopie seines Werts. Das Prinzip ist immer dasselbe: Jedes Formular trägt den aktuellen Zustand aller anderen mit.Erzeugte Auswahllisten mitführen
Ein Tag, das eine fertige Auswahlliste ausgibt, wird in einen Bereich gesetzt, der per CSS unsichtbar ist. Einselect in einem solchen Bereich wird weiterhin abgesendet, nur eben nicht angezeigt.
disabled verhindert, dass ein Feld abgesendet wird. display: none wirkt rein optisch, der Wert geht mit. Genau darauf beruht dieser Weg.
Die Sortierung mitführen
Die Sortierung steckt nicht in einem Feld, sondern in genau einem Wert, den die Auswahlliste liefert. Es genügt deshalb, den gerade aktiven Wert als verstecktes Feld zu setzen. Dafür sind dieActive-Klammerungen da:
Active-Klammerungen erfüllt, sodass auch höchstens ein Feld entsteht. Ist gar nicht sortiert, entsteht keines, und das ist richtig.
Den Suchbegriff mitführen
value-Attribut sorgt dafür, dass er beim Neuladen wieder darin steht.
Das Include gegen die Wartungsfalle
Legen Sie die mitzuführenden Blöcke einmal als Include an und binden Sie sie überall ein, wo sie gebraucht werden. Ein neues Sortierkriterium ergänzen Sie dann an einer Stelle.Worauf Sie achten sollten
Verwenden Siemethod="get". Dann stehen Suchbegriff, Sortierung und Filter in der Adresse, und der Käufer kann sein Ergebnis als Lesezeichen sichern oder weitergeben. Mit method="post" geht das verloren, und die Zurück-Schaltfläche des Browsers fragt nach dem erneuten Absenden.
Geben Sie accept-charset nicht fest an. Wenn Sie es brauchen, setzen Sie accept-charset="~WS-Charset~", damit es dem Zeichensatz des Shops folgt und bei einer Umstellung mitwandert.
Verwandte Themen
- Wegweiser: Produktlisten sortieren
- Wegweiser: Erweiterte Suche
- Wegweiser: Abhängige Suche
- Wegweiser: Filter auf Kategorieebene
- Wegweiser: Produktlisten blättern und Produkte je Seite
