Vorauswahl einer DropDown-Variante

hallo OXIDs, ich möchte beim Azure-Template direkt eine mehrdimensionale Variante aus dem Dropdown (selectbox.tpl) vorauswählen und nicht erst den Vaterartikel …

Auf die Schnelle habe ich es per jQuery gelöst, würde es aber gerne per Modul oder Skriptänderung verbauen (zwecks Performance & sauberer Code)

z.Bsp. in die page/details.tpl

    [{oxscript add="
    $(document).one('ready', function(e) {
    $('ul.vardrop a.var1_1, ul.vardrop a.var2_1').click();
    });
    "}]

Ich bin beim Skript core/oxvariantselectlist.php hängen geblieben, habe aber noch keinen funktionierenden Ansatz gefunden :confused:

Was meint Ihr? Jemand eine Idee oder Snippet?
VG Stefan

Hallo Stefan,

kannst du mir verraten wie du es per Javascript geschafft hast direkt eine Vorauswahl zu treffen?

Ich danke dir.

[QUOTE=padaja;140692]Hallo Stefan,

kannst du mir verraten wie du es per Javascript geschafft hast direkt eine Vorauswahl zu treffen?

Ich danke dir.[/QUOTE]

Hallo padaja,
ich glaub wir haben dies damals mit jquery umgesetzt, irgendwas in der Form:

[{oxscript add="$('ul.vardrop a.var1_1').click();"}]

ansonsten schau dir mal dieses Modul an, das funzt auch super!

VG Stefan

Muss das über jQuery laufen? Das gibt es auch ohne und funktioniert tadellos:

Schaut euch mal die Demo an. Damit kann ich mir genau anzeigen lassen, was weg soll:
http://480.foxido.de/Bekleidung/Fashion/Fuer-Sie/Shirts-Co/Stewart-Brown-Shirt-Kisser-Fish.html

http://480.foxido.de/Bekleidung/Fashion/Fuer-Sie/Jeans/Kuyichi-Jeans-ANNA.html

Hi pixelproduzenten,

https://github.com/gn2netwerk/GN2_VariantJump funnktioniert leider bei der neuen Oxid Version 4.8 nicht mehr :frowning:

@tvtotal: Deine Lösung ist perfekt, nur wie funktionierts?

hallo padaja,
probier mal folgendes:

http://demoshop.oxid-esales.com/professional-edition/Kiteboarding/Zubehoer/Klebeband-DACRON-KITEFIX.html

und dann diesen Schnipsel in der Konsole ausführen

$('ul.vardrop a:nth-child(1n+1)').click();

VG Stefan

Hi Pixelproduzenten,

der Befehl

$('ul.vardrop a:nth-child(1n+1)').click();

in der Konsole funktioniert. Wie bin ich diesen nun am besten in die Seite ein?

Ich habe den Befehl so wie hier:

[{oxscript add="$('ul.vardrop a:nth-child(1n+1)').click();"}]

in das Template selectbox.tpl eingebunden, allerdings funktionierts so nocht nicht.

Was mache ich falsch?

hi padaja,
genau per [{oxscript add …}] feuerst du das jquery ab, entscheidend ist nun ob du das richtige Element ansprichst ‘[B]ul.vardrop a[/B]:nth-child(1n+1)’ und ob es zur richtigen Zeit geladen wird, also nachdem jquery bereits geladen wurde und AJAX abgearbeitet (ajax/fullproductinfo.tpl, etc.) ist.

Hast du einen Link zu deinem Shop?

VG Stefan

Hi Stefan,

die Klasse wird angesprochen und es funktioniert auch wenn ich die Formatierung ändere z.B.
so:

[{oxscript add="$(‘ul.vardrop a:nth-child(1)’).click();"}]

Allerdings bekommt die Seite dann eine dauerschleife. Sprich die Auswahl eins wird immer und immer wieder geklickt.

Was macht man denn bei mehrdimensionalen Varainten?

Hallo,

kann mir in diesem Fall noch jemand helfen und mir auf die Sprünge helfen in welchem Bereich ich das Snippet

[{oxscript add="$('ul.vardrop a:nth-child(1n+1)').click();"}]  

einfügen muss, ohne das ich eine Dauerschleife des ausgewählten Artikels erhalte?

Wäre richtig gut :slight_smile:

Ich habe leider auch das Problem, dass ich seit Version 4.8 nicht mehr die erste Variante direkt anzeigen lassen kann. Die dafür vorhandenen Module funktionieren leider nicht mehr. Der genannte Code führt auch bei mir zu einer Dauerschleifen.

Weiß jemand eine Lösung?

hast du mal mit “Modul-Entwickler nett nach einem Update fragen” probiert?

Oder einfach 39 € ausgeben. Siehe mein Link.

Hallo und guten Abend,

das ursprüngliche Script:


[{oxscript add="$('ul.vardrop a:nth-child(1n+1)').click();"}] 

muss man in 4.8 nicht in die selectbox.tpl kopieren, sondern in die
[B]/application/views/azure/tpl/widget/product/details.tpl[/B] ganz am Ende (bei mir Zeile 62).

So funktioniert das bei mir in 4.8.6, Azuretheme bestens :wink:

Viel Erfolg!

Hallo und guten Abend,

das ursprüngliche Script:


[{oxscript add="$('ul.vardrop a:nth-child(1n+1)').click();"}]

muss man in 4.8 nicht in die selectbox.tpl kopieren, sondern beispielsweise in die
[B]/application/views/azure/tpl/widget/product/details.tpl[/B], einfach ganz am Ende.

So funktioniert das bei mir in 4.8.6, Azuretheme bestens :wink:

Viel Erfolg!

Welcher Link?

So funktioniert das bei mir in 4.8.6, Azuretheme bestens

Bei mehr als eine Variante wird bei mir (CE 4.8.7) nicht die erste Variante, sondern eine Zufallsvariante ausgewählt. Weiß jemand warum? :confused:

Hallo,

ich habe es so gelöst:


[{oxscript add="
        $(document).ready(function() {
            if ($('ul.vardrop a.active').attr('data-selection-id') == undefined) {
                $('ul.vardrop a:first').click();
            }
        });
"}]

Es wird die erste Variante gewählt, aber nur dann wenn keine bereits gewählt ist.
Mit der IF Anweisung wird die Dauerschleifen umgegangen.

Mit freundlichen Grüßen

Bei multidimensionalen Varianten dürfte es so Probleme geben, weil

$('ul.vardrop a:first')

dann für alle gilt.

warum macht man nicht ganz einfach den Vaterartikel kaufbar?