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…
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.
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:
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.
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.
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:
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.
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.
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.
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