Auflistung der Zubehörliste

Hallo zusammen,

ich habe mir bei der Artikeldetailansicht ein kleines Template geschrieben, dass die Zubehörliste auflistet und dem Kunden ermöglichen soll, diese sofort zu kaufen. Das funktionierte auch wie es soll, bis ich feststellen musste, dass dies NUR bei Artikeln ohne Varianten funktioniert.

Sobald der Artikel Varianten besitzt, wo verschiedenes Zubehör zugeteilt wurde, klappt das leider nur noch genau einmal. Sobald man die Variante nochmals wechseln will, erscheint nur die Meldung: undefined.

Ich konnte den Fehler zwar schon eingrenzen, und dieser ist unten aufgeführt, aber mir will der Groschen einfach nicht fallen, was da nicht in Ordnung ist. Hat jemand eine Idee?


<form class="js-oxProductForm" action="[{$oViewConf->getSelfActionLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
[{$oViewConf->getNavFormParams()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="aid" value="[{$_oBoxProduct->oxarticles__oxid->value}]">
<input type="hidden" name="anid" value="[{$oDetailsProduct->oxarticles__oxnid->value}]">
<input type="hidden" name="parentid" value="[{if !$_oBoxProduct->oxarticles__oxparentid->value}][{$_oBoxProduct->oxarticles__oxid->value}][{else}][{$_oBoxProduct->oxarticles__oxparentid->value}][{/if}]">
<input type="hidden" name="panid" value="">
<input type="hidden" name="fnc" value="tobasket">
<input id="ADDamountToBasket" type="text" name="am" value="1" size="3" autocomplete="off" class="textbox">
<button id="ADDtoBasket" type="submit" class="submitButton largeButton" title="[{oxmultilang ident="DETAILS_ADDTOCART"}]">[{oxmultilang ident="DETAILS_ADDTOCART"}]</button>
 </form>

Keiner eine Idee, warum das bei Varianten nicht funktioniert?

Wie kommst du denn darauf, dass der Fehler unbedingt in dem Formular zum “in den Warenkorb legen” versteckt ist?
Und was ist “undefined”?
Ohne zu sehen, was du gemacht hast, kann man leider nicht sagen, was du falsch gemacht hast.

Danke vanilla, für deine Antwort.

Wenn ich diese Passage auskommentiere, dann funktioniert die Auflistung.

Wenn ich versuche, die Variante ein zweites mal zu wechseln, steht einfach nur “undefined” am Bildschirm. Ich kann das auch irgendwie nicht debuggen - kein Eintrag, nirgendwo.

Du hast aber Recht, mit dem Schnippsel ist es wohl wirklich schwer zu sagen, wo der Fehler liegt.

So sieht der komplette Code aus:


[{ assign var="oPro" value=$oView->getAccessoires()}]
[{ assign var="currency" value=$oView->getActCurrency()}]

 
<div [{if $_boxId}]id="[{$_boxId}]"[{/if}] class="pro_acc" style="margin-bottom:20px;">
    [{if $_sHeaderIdent}]
        <h3 class="clear sectionHead">[{ oxmultilang ident=$_sHeaderIdent }]</h3>
    [{/if}]
	
    
    [{foreach from=$oPro item=_oBoxProduct name=_sProdList}]
    	
        [{oxifcontent ident="oxdeliveryinfo" object="oCont"}]
    	[{ assign var="_sTitle" value="`$_oBoxProduct-&gt;oxarticles__oxtitle-&gt;value` `$_oBoxProduct-&gt;oxarticles__oxvarselect-&gt;value`"|strip_tags}]
        [{ assign var="oCategory" value=$_oBoxProduct->getCategory()}]
        
	<table>
		<tr>
			<td><a class="articleBoxImage" href="[{ $_oBoxProduct->getMainLink() }]"><img src="[{$_oBoxProduct->getIconUrl()}]" alt="[{$_sTitle}]"></a></td>

			<td style="width:250px;">
        		<a href="[{ $_oBoxProduct->getMainLink() }]">[{ $oCategory->oxcategories__oxtitle->value|upper }] - [{ $_sTitle }]</a><br />
                
                [{ if $_oBoxProduct->oxarticles__oxartnum->value }]
                 	<div class="det_acc_art mar_top">[{oxmultilang ident="DETAILS_ARTNUMBER"}] [{$_oBoxProduct->oxarticles__oxartnum->value}]</div>
                [{ /if }]
                
                [{include file="widget/product/shipping_acc.tpl"}]
        	</td>
        
        	<td style="width:160px;">	
                [{if $_oBoxProduct->getFPrice()}]
                     <strong>[{ $_oBoxProduct->getFPrice() }] [{ $currency->sign}] </strong>
                [{/if}]

                <div class="font_10">
                    [{oxmultilang ident="WIDGET_PRODUCT_PRODUCT_PLUSSHIPPING"}] <a href="[{$oCont->getLink()}]" rel="nofollow">[{ oxmultilang ident="WIDGET_PRODUCT_PRODUCT_PLUSSHIPPING2" }]</a>
           		</div>	
        	</td>
            
            <td style="width:190px; text-align:right;">  
                        <form class="js-oxProductForm" action="[{$oViewConf->getSelfActionLink()}]" method="post">
                        [{$oViewConf->getHiddenSid()}]
                        [{$oViewConf->getNavFormParams()}]
                        <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
                        <input type="hidden" name="aid" value="[{$_oBoxProduct->oxarticles__oxid->value}]">
                         <input type="hidden" name="anid" value="[{$oDetailsProduct->oxarticles__oxnid->value}]">
                        <input type="hidden" name="parentid" value="[{if !$_oBoxProduct->oxarticles__oxparentid->value}][{$_oBoxProduct->oxarticles__oxid->value}][{else}][{$_oBoxProduct->oxarticles__oxparentid->value}][{/if}]">
                        <input type="hidden" name="panid" value="">
                        <input type="hidden" name="fnc" value="tobasket">
                        <input id="ADDamountToBasket" type="text" name="am" value="1" size="3" autocomplete="off" class="textbox">
                        <button id="ADDtoBasket" type="submit" class="submitButton largeButton" title="[{oxmultilang ident="DETAILS_ADDTOCART"}]">[{oxmultilang ident="DETAILS_ADDTOCART"}]</button>
                        </form>
            </td>
		</tr>
    </table>
        <div style="width:100%; border-bottom:1px dashed #999;"></div>

und hier der 2te Teil:


 [{ if $oView->getAccessoires()|count eq 1 }]
        [{ assign var="oCategoryNew" value=$oDetailsProduct->getCategory()}]
    <table>
       <tr>
           <td><img src="[{$oDetailsProduct->getIconUrl()}]" alt="[{$oDetailsProduct->oxarticles__oxtitle->value}]" title="[{$oDetailsProduct->oxarticles__oxtitle->value}]"></td>
           
           <td style="width:250px;">
                    [{ $oCategoryNew->oxcategories__oxtitle->value|upper }] - [{$oDetailsProduct->oxarticles__oxtitle->value}] <br />
                        
                    [{ if $oDetailsProduct->oxarticles__oxartnum->value }]
                         	<div class="det_acc_art mar_top">[{oxmultilang ident="DETAILS_ARTNUMBER"}] [{$oDetailsProduct->oxarticles__oxartnum->value}]</div>
                    [{ /if }]
                   
                   [{include file="widget/product/shipping_acc.tpl"}]         
                            
           </td>
           
           <td style="width:160px;">
                   [{if $oDetailsProduct->getFPrice()}]
                          <strong>[{ $oDetailsProduct->getFPrice() }] [{ $currency->sign}] </strong>
                   [{/if}]
                       
                   <div class="font_10">
                         [{ oxmultilang ident="WIDGET_PRODUCT_PRODUCT_PLUSSHIPPING" }] <a href="[{ $oCont->getLink() }]" rel="nofollow">[{ oxmultilang ident="WIDGET_PRODUCT_PRODUCT_PLUSSHIPPING2" }]</a>
                   </div>	
          </td>
          
          <td style="width:190px;">
                   [{math equation="x + y" x=$_oBoxProduct->getFPrice()|replace:".":""|replace:",":"." y=$oDetailsProduct->getFPrice()|replace:".":""|replace:",":"."  format="%.2f" assign="oTotal"}]
                    
                   	<div class="border_access">
                       <div style="text-align:center;">[{ oxmultilang ident="BOTH_TO_BASKET_ADD" }]</div>
                           <div style="text-align:center; font-weight:bold;">[{ oxmultilang ident="WIDGET_MINIBASKET_TOTAL" }]: [{$oTotal}] [{ $currency->sign}] *</div>
                                    <div class="down_arrow"></div>
                   </div>
          </td>
      </tr>
      
      <tr>
                    <td style="vertical-align:middle; font-size:48px; width:85px; text-align:center;">+</td>
                    <td style="width:250px;"></td>
                    <td style="width:160px;"></td>
                    <td style="vertical-align:middle; width:190px;">
                        <div style="text-align:right;">
                            <form class="js-oxProductForm" action="[{$oViewConf->getSelfActionLink()}]" method="post" onsubmit="moveValue('BOTHADDamountToBasket','nova');moveValue('BOTHADDamountToBasket','noval')">
                            [{$oViewConf->getHiddenSid()}]
                            [{$oViewConf->getNavFormParams()}]
                            <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
                            <input type="hidden" name="aproducts[1][aid]" value="[{$_oBoxProduct->oxarticles__oxid->value}]">
                            <input type="hidden" id="nova" name="aproducts[1][am]" value="1">
                            <input type="hidden" name="aproducts[1][parentid]" value="[{if !$_oBoxProduct->oxarticles__oxparentid->value}][{$_oBoxProduct->oxarticles__oxid->value}][{else}][{$_oBoxProduct->oxarticles__oxparentid->value}][{/if}]">
                            <input type="hidden" name="aproducts[1][panid]" value="">
                            <input type="hidden" name="aproducts[2][aid]" value="[{$oDetailsProduct->oxarticles__oxid->value}]">
                            <input type="hidden" id="noval" name="aproducts[2][am]" value="1">
                            <input type="hidden" name="aproducts[2][parentid]" value="[{if !$oDetailsProduct->oxarticles__oxparentid->value}][{$oDetailsProduct->oxarticles__oxid->value}][{else}][{$oDetailsProduct->oxarticles__oxparentid->value}][{/if}]">
                            <input type="hidden" name="aproducts[2][panid]" value="">
                            
                            <input type="hidden" name="anid" value="[{$oDetailsProduct->oxarticles__oxnid->value}]">
                            <input type="hidden" name="fnc" value="tobasket">
                            <input id="BOTHADDamountToBasket" type="text" name="am" value="1" size="3" autocomplete="off" class="textbox">
                            <button id="BOTHADDtoBasket" type="submit" class="submitButton largeButton" title="[{oxmultilang ident="DETAILS_ADDTOCART"}]">[{oxmultilang ident="DETAILS_ADDTOCART"}]</button>
                            </form>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td><img src="[{$_oBoxProduct->getIconUrl()}]" alt="[{$_oBoxProduct->oxarticles__oxtitle->value}]" title="[{$_oBoxProduct->oxarticles__oxtitle->value}]"></td>
                    <td style="width:250px;">
                    	[{ $oCategory->oxcategories__oxtitle->value|upper }] - [{$_oBoxProduct->oxarticles__oxtitle->value}]<br />
                               
                        	[{ if $_oBoxProduct->oxarticles__oxartnum->value }]
                            	 <div class="det_acc_art mar_top">[{oxmultilang ident="DETAILS_ARTNUMBER"}] [{$_oBoxProduct->oxarticles__oxartnum->value}]</div>
                            [{ /if }]
                            
                        	[{include file="widget/product/shipping_acc.tpl"}]
                    </td>
                    <td style="width:160px;">
                       
                                    [{if $_oBoxProduct->getFPrice()}]
                                        <strong>[{ $_oBoxProduct->getFPrice() }] [{ $currency->sign}] </strong>
                                    [{/if}]
                                    
                        <div class="font_10">
                                [{ oxmultilang ident="WIDGET_PRODUCT_PRODUCT_PLUSSHIPPING" }]<a href="[{ $oCont->getLink() }]" rel="nofollow">[{ oxmultilang ident="WIDGET_PRODUCT_PRODUCT_PLUSSHIPPING2" }]</a>
                        </div>	
                    </td>
                    <td style="width:190px;"></td>
                </tr>
            </table>
            <div style="width:100%; border-bottom:1px dashed #999;"></div>
        [{ /if }]
     [{/oxifcontent }]
	[{/foreach}]
</div>

Zum besseren Verständnis, wie es aussieht im Frontend. Wie gesagt, bei normalen Artikeln ohne Varianten, funktioniert das tadellos.

Ich denke es liegt an: class=“js-oxProductForm”

Woher weißt Du solche Dinge eigentlich immer Frank??
Das dürfte jetzt Problem Nr. 4 gewesen sein, was Du für mich gelöst hast:-)

Vielen, vielen lieben Dank!!

Wie sieht denn hier die Lösung aus? Was muss denn an class=“js-oxProductForm” geändert werden, damit es funktioniert? Finde dieses Template sehr interessant!

Habs rausgefunden!

Gruß