Auswahllisten DropDown

Hallo,

ich versuche gerade im Azure Template die Auswahlliste anzupassen.
Und zwar soll das DropDown weichen und einer Farbauswahl in form von
6 Farbboxen weichen.
Soweit so gut…

[{foreach from=$oSelections item=oSelection}]
           <a data-seletion-id="[{$oSelection->getValue()}]" href="[{$oSelection->getLink()}]" class="[{if $oSelection->isActive()}]selected[{/if}]">[{$oSelection->getName()}]</a>
            [{/foreach}]

hiermit lasse ich die Auswahlmöglichkeiten in meiner Liste auflisten.
Das wären in diesem Beispiel 6 Farben als Text-links hintereinander.
Erst einmal soll das alles mit ganz normalen Links funktionieren. Um die Formatierung mache ich mir später gedanken.

Wie schaffe ich es nun, dass wenn ich z.B. auf blau klicke und den Artkel bestelle
ihm die Eigenschaft blau zugewiesen wird?
Sobald ich eine Farbe anklicke, springt die Seite nach oben. Irgendwie/Irgendwo wird nach href="#" verlinkt. In der Adressleiste des Browsers hängt sich ein # an.

vielen Dank

Kevin

Kann mir keiner helfen, oder hat keiner einen Tipp für mich?

Grüße

Kevin

So… Ich versuche das jetzt irgendwie anders zu lösen.
Wie könnte ich den einer Smarty-Variablen durch einen Link einen Wert zuweisen?

<a href=“#” onclick=“[{assign var=“Farbe” value=“1”}]”>blau</a>

funktioniert nämlich leider nicht.
Hat mir da jemand einen Tipp?

Grüße

Kevin

Ich muss gestehen, dass ich nicht ganz verstehe, was Du eigentlich willst.

Wenn es darum geht, dass bei bestimmten Varianten sich die Farbe ändert, könntest Du das z.B. so angehen.


[{if $oSelection->getName() eq 'blau'}]
<a href="#" class='blau'>blau</a>
[{elseif $oSelection->getName() eq 'gelb'}]
<a href="#" class='gelb'>gelb</a>
...usw

Ist es das, was Du willst?

Danke novalgin.:slight_smile:

Leider ist das nicht das wonach ich gesucht habe.

Ich möchte eine eine Farbauswahl mit verschiedenen Farbkästchen erreichen.
D.h. wünsch der Kunde den Artikel in gelb, klickt er auf das gelbe Kästchen.
Das aktive Kästchen wird per css mit einem Rahmen markiert.
So wie auf dem Bild.

Jetzt habe ich mich das Wochenende über durch die selectbox.tpl gewurschtelt und habe hereusgefunden, dass der index der ausgesuchten Farbe in einem hidden input hinterlegt wird, welcher dann mit in den Warenkorb geschrieben wird:

<input type="hidden" name="[{$sFieldName|default:"varselid"}][[{$iKey}]]" value="[{if $oActiveSelection }][{$oActiveSelection->getValue()}][{/if}]">

Wenn ich das jetzt auf dieses hier

<input type="hidden" name="sel[0]" value="0">

abändere, sind alle Artikel rot, weil rot die erste Farbe in der Auswahlliste ist.

Ich würde nun gerne durch klicken auf ein Farbkästechen den inhalt einer Smarty-Variable ändern. Z.B. klickt man auf das rote Kästchen bekommt die Variable $Farbe den Wert “0” zugewiesen. Klickt man auf gelb bekommt die Variable den Wert=“1” zugewiesen.

Diese Variable wird dann in dem hidden input übergeben.

<input type="hidden" name="sel[0]" value="[{$Farbe}]">

Jetzt stellt sich mir die Frage, wie kann ich der Variablen durch einen Link einen Wert zuweisen? Oder gibt es eine einfachere Möglichkeit die so eine Farbauswahl zu realisieren.

Smarty-Variablen kannst du so nicht ändern, wenn die Seite in deinem Browser angezeigt wird hat Smarty schon längst Feierabend. Was du vorhast kannst du nur (und am Besten) mit Javascript lösen.

Jetzt fällt der Groschen:-)

Ok, da habe ich jetzt so spontan auch keinen Code parat.

Was hältst Du von folgendem Ansatz:

Füge deine Farben als Buttons alle in eine Form und sende bei Klick das Formular ab. Anschließend z.B. mit


[{ assign var="Farbe" value=$smarty.post.farbe }]

Hallo und Danke,

dann müsste ich mir den Weg über Smarty eigentlich sparen können, weil ja die Artikel auch über eine Form in den Warenkorb übertragen werden.
In diesem Fall müsste es ja reichen, wenn man mit Javascript den “value” hier manipuliert:

 <input type="hidden" name="sel[0]" value="[{$Farbe}]">

Dann müsste wenn man auf “In den Warenkorb” klickt der Wert mit übernommen werden, oder?

Ist so etwas mit javascript überhaupt möglich? Also dass ich den Wert des input-Tags manipuliere? Und wenn ja, wie würde das gehen?

Danke

Grüße
Kevin

Bevor wir die ganze Zeit aneinander vorbei reden, du willst sowas in der Art?

http://www.meinestruempfe.de/Damen/Alltagsstruempfe/Chinchillan-20-Strumpfhose.html

Das ist nämlich schon etwas komplexer

Guten Morgen,

genau so etwas meine ich, nur eben zur Auswahl der Farbe.
Ist das so kompliziert? Kann man so etwas nicht mit dem OnClick Ereignis
realisieren? Also ich mach nen Link mit OnClick und dieser setzt mir irgendwo eine Variable.

Grüße

Kevin

Naja, sooo kompliziert ist es nicht, allerdings ist es auch nicht mit setzen einer Variablen getan. Das dürften schon etwas mehr Codeänderungen und JS Anpassungen sein.

Der Betreiber meines oben genannten Links ist ein sehr aktives Mitglied hier, und ich glaube sogar, dass er seinen Ansatz für dieses hier irgendwann mal hier gepostet hat. Finde es leider im Moment nicht.

Frag Ihn doch einfach:-) Es ist coarsy…

Nein, ist ziemlich komplex das Ganze, der alte Ansatz ist längst überholt. Diese Version funktioniert mittels Datenbankzugriffen, welche mir ein JSON Objekt zurückliefern, welche ich dann mit einem relativ komplexen Javascript verarbeite. Wahrlich kein Zuckerschlecken, da auch das Template an einigen Stellen umgekrempelt werden muss. Hab da selbst mehrere Wochen daran gesessen und es eignet sich nur für Mode. Die Farbwerte werden übrigens aus der Artikelnummer ausgelesen. Hier ist meine alte Version zu sehen, die die Farbwerte aus den Klammern innerhalb der Variantenbezeichnung zieht: sockenpara.de . Hier werden nur die Selectboxen entsprechend versteckt und verarbeitet, die der Shop ohnehin bereit stellt.

Gesendet von meinem HTC Vision mit Tapatalk 2

So… Nach ein bisschen einarbeitung in JavaScript habe ich es nun geschafft so eine Farbauswahl zu realisieren. Es funktioniert noch alles manuell, d.h. ich muss die Farben des Artikels noch in der JavaScript-Datei selber definieren.
Das würde ich gern automatisch machen.
In der selectbox.tpl werden ja auch die verschiedenen Auswahlmöglichkeiten aus dem Artikel ausgelesen.
Mein nächster Versuch wird es sein, mit Smarty alle Farben aus dem Artikel auszulesen und meine colorboxes damit zu erstellen und mit dem entsprechenden OnClick-Events zu versehen. In der JavaScript-Datei sind dann alle möglichen Farben aus allen Artikeln als funktionen definiert.
Dies sollte ja machbar sein, auch wenn Smarty lang vor JavaScript die Seite aufbaut.
Ich halte euch auf dem Laufenden :slight_smile:

Grüße

Kevin