Warum wird beim filtern checkbox.id genommen und nicht checkbox.value?

Tach zusammen,

ich geh mal wie so oft davon aus, dass ich mich mit mir selber unterhalte, naja, ich stell trotzdem mal die Frage.

Folgendes ist mir aufgefallen, dass das Filter unmöglich macht.

  • Ich habe einen Filter „Grip“ mit Auswahl: A, B, C, D, …
  • Ich habe einen Filter „Fuel“ mit Auswahl: A, B, C, D, …

Wenn ich nun „Fuel“ auswähle, wird der Request „grip=a|b…“ ausgeführt.
Das scheint an den IDs der Checkboxen zu liegen.
OK, dann eben eindeutige IDs für Checkboxen machen.

Grip:

Fuel:

So nun sind meine Request quasi richtig, aber die Werte sind nun falsch „fuel=filter-fuel-value-a“ und nicht „fuel=a“.

OK, dann mal in JS gucken was da los ist und siehe DA:

// [47] platform/src/Storefront/Resources/app/storefront/src/plugin/listing/filter-multi-select.plugin.js
Iterator.iterate(checkedCheckboxes, (checkbox) => {
    selection.push(checkbox.id);
});

Es wird die ID der Checkbox für den Wert genommen.
Ändert man das auf :

Iterator.iterate(checkedCheckboxes, (checkbox) => {
    selection.push(checkbox.value);
});

Dann geht es.

So, und nun die Frage mit der Hoffnung auf gehör:

WARUM WIRD BEIM FILTERN DIE ID GENOMMEN UND NICHT VALUE?

 

damit du nicht wieder mit dir selber reden musst, @pino‍ :wink:
ich kann dir darauf keine Antwort geben, aber wie auch in so manch anderen Bereichen,
ist die Verwendung der binären IDs die Wurzel vieler Probleme/Ungereimtheiten.
Treibt mich bei manchen Sachen ansatzweise in den Wahnsinn  Frown

push