Im Warenkorb Menge als DropDown anzeigen CE 4.8.1

Hallo Community,

ist es möglich die Menge in der Warenkorbübersicht als DropDown (select) zu verwenden und nicht als input?

Der aktuelle Eintrag in der basketcontents.tpl sieht so aus

<input id="am_[{$smarty.foreach.basketContents.iteration}]" type="text"  name="aproducts[[{ $basketindex }]][am]" value="[{ $basketitem->getAmount() }]" size="2">

Es müsste der Wert von der Produktdetailseite mit übergeben werden, für den fall das ich dort 3x ausgewählt habe das ebenso schon in der Warenkorbübersicht so eingetragen ist.

Des Weiteren sollte bei Auswahl einer anderen Anzahl sich der Warenkorb direkt aktualisieren.

Hat jemand eine Lösung?

Ja kannst du, mach aus dem input tag einen select tag (http://de.selfhtml.org/html/formulare/auswahl.htm). Du kannst dann per javascript auch dafür sorgen dass das Formular automatisch abgesendet wird, Stichwort onchange Event.

Hi aggrosoft,

danke für deine Antwort. Es funktioniert schon ganz gut, allerdings wird der Wert in der DropDown Box immer wieder auf 1 zurück gesetzt, auch wenn ich 5x ausgewählt habe. Der müsste sich das gewählte noch merken.

Hast du hierfür noch ein Tipp?

Der Code sieht aktuell so aus:


<select onChange="this.form.submit()" id="am_[{$smarty.foreach.basketContents.iteration}]" name="aproducts[[{ $basketindex }]][am]" value="[{ $basketitem->getAmount() }]">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
</select>

Ein select hat keine value eigenschaft - du musst das so in etwa machen:


<option value="1"[{ if $basketitem->getAmount() == 1 }] selected="selected"[{/if}]>1</option>
<option value="2"[{ if $basketitem->getAmount() == 2 }] selected="selected"[{/if}]>2</option>

In einer smarty loop wäre das schöner, aber so geht es auch.

Perfekt, funktioniert bestens!

Vielen Dank!!