Varianten gezielt ansprechen und anzeigen

Liebe oxidler,

seit einigen tagen schlage ich mich nun schon mit folgendem problem rum:
ein artikel verfügt über verschiedene varianten in form von auswahllisten. diese sollen allerdings nicht alle untereinander stehen, sondern die erste liste gehört zu “1 montageart” mit der frage “Wo soll Ihre Jalousie angebracht werden?”, die zweite liste zu “2 form” mit der frage “Wie sieht Ihr Fenster bzw. Ihre Tür aus?” etc.

wie bekomme ich es nun hin, die einzelnen variantenabfragen den entsprechenden punkten zuzuordnen bzw. nur unter den entsprechenden punkten anzuzeigen? sprich die foreach schleife aufzulösen und anstelle davon bspw. für die erste liste (“sel[0]”) so etwas zu sagen wie

[{ if $oProduct->getSelectLists() }]
[{ $oProduct->getSelectList(‘sel[0]’) }]
<div class=“calcParam”>
<select rel=“calcChanger” id=“test_select_[{$oProduct->oxarticles__oxid->value}]_0” name=“sel[0]” class=“paramInput”>
[{ foreach key=iSelIdx from=$oList item=oSelItem}]
[{ if $oSelItem->name }] <option value="[{$iSelIdx}]"> [{ $oSelItem->name }] </option> [{/if}]
[{/foreach}]
</select>
</div>
[{/if}]

unter dem folgenden link seht ihr evtl. besser was ich meine:
http://www.jalousita.de/webshop/index.php?cl=calc&aid=c027534ad2680361cbe4605c695bc29a

vielen dank im voraus für eure mühen!
dylan

ich komme leider noch immer nicht weiter -.-

mir gelingt es einfach nicht, die einzelnen sel’s anzusprechen.
im prinzip müsste es ja reichen, wenn die einzelnen div container, in denen die listen stecken, durchgezählt und die nicht benötigten jeweils mittels css ausgeblendet werden, oder? allerdings bekomme ich nicht einmal das auf die kette.

hat keiner eine idee?

sorry für meine unwissenheit. habe es nun endlich hinbekommen…
meine güte was kann ich mich über mich selbst ärgern.

einfach id="[{$iSel++}] als attribut in die div schreiben und schon fängt der an zu zählen.
so fühlt es sich also an, zählen zu lernen :smiley:

und damit ich meine posts mit etwas sinnvollem abschließe:

[{ assign var=“zaehle” value=“0” }]

und dann an jedem div:
<div class=“calcParam” id=“selectliste_[{$zaehle++}]”>

</div>

Danke für die Rückmeldung nach dem Monolog :slight_smile:

Gruß

gern :wink:
danke für’s bereitstellen des virtuellen sofas :smiley:

ich muss meine anfängliche frage doch wieder aufgreifen:

die aktuelle “lösung” ist alles andere als gut, weil die radiobuttons nur bedingt funktionieren.
ich muss bspw. immer wieder unheimlich viele radiobuttons per css unsichtbar machen, weil sie ja per “foreach” schleife immer wieder auftauchen.

gibts hier eine bessere möglichkeit, um jede selectliste einzeln anzusprechen?

dank euch im voraus!

für diejenigen, die vor dem gleichen problem stehen:
die lösung sieht folgendermaßen aus:

man gibt jeder foreach schleife einen individuellen namen und lässt smarty nur eine iteration ausgeben. in diesem fall wird nur die selectliste mit der iteration 0, also die allererste liste, ausgegeben.

[{ if $oProduct->getSelectLists() }]
[{ foreach key=iSel from=$oProduct->getSelectLists() item=oList name=list0 }]
[{ if $smarty.foreach.list0.index == 0 }]

blaberabla

[{/if}]
[{/foreach}]
[{/if}]

jetzt “nur” noch alles ordnungsgemäß an den warenkorb übergeben lassen…