Hi Leute,
ich sitze gerade an einem Fehler und komme bisher nicht wirklich weiter, es geht um den Artikelvergleich. Das Problem ist wenn auf den Button drücke um einen Artikel in die Vergleichsliste zu setzen, dass dieser dort nie ankommt.
Ich muss dazu allerdings sagen, dass ich die Funktion um eine Ajax Anfrage ergänzt habe, also wenn der Button gedrückt wird um den Artikel auf die Liste zu setzen, dann öffnet sich eine von mir geschriebene Funktion sendCompare(), die alle Parameter entgegennimmt und diese per GET an den Controller weiter gibt.
Zum besseren Verständniss meiner Problematik hier nochmal die (wie ich denke) relevanten Codestellen:
details.tpl
==========
Hier an der Stelle wird das Template "compate_links.tpl" eingefügt, welche die Anfrage an den Controller vornimmt.
compate_links.tpl
======================
An dieser Stelle wird der Link mit allen Parametern zusammengebaut und an die von mir geschriebene JS Funktion sendCompare() übergeben.
DIe JS Funktion sendCompare()
============================
Soweit ich das verstehe ist für das hinzufügen von Artikeln auf die Vergleichsliste die Klasse oxcmp_utils mit der Funktion tocomparelist verantwortlich. Ich vermute nun das die Ajax Anfrage garnicht bei der Klasse ankommt und deswegen nichts passiert oder ?
Falls ja? Wie kann ich den Fehler beheben bzw. welche Parameter muss ich wo Ändern um das zu beheben ?
Gruß
ewgeni
ich sitze gerade an einem Fehler und komme bisher nicht wirklich weiter, es geht um den Artikelvergleich. Das Problem ist wenn auf den Button drücke um einen Artikel in die Vergleichsliste zu setzen, dass dieser dort nie ankommt.
Ich muss dazu allerdings sagen, dass ich die Funktion um eine Ajax Anfrage ergänzt habe, also wenn der Button gedrückt wird um den Artikel auf die Liste zu setzen, dann öffnet sich eine von mir geschriebene Funktion sendCompare(), die alle Parameter entgegennimmt und diese per GET an den Controller weiter gibt.
Zum besseren Verständniss meiner Problematik hier nochmal die (wie ich denke) relevanten Codestellen:
details.tpl
==========
Hier an der Stelle wird das Template "compate_links.tpl" eingefügt, welche die Anfrage an den Controller vornimmt.
PHP Code:
[{oxid_include_dynamic file="dyn/compare_links.tpl" testid="" type="compare" aid=$product->oxarticles__oxid->value anid=$product->oxarticles__oxnid->value in_list=$product->isOnComparisonList() page=$pageNavigation->actPage-1 text_to_id="DETAILS_COMPARE" text_from_id="DETAILS_REMOVEFROMCOMPARELIST"}]
</div>
compate_links.tpl
======================
An dieser Stelle wird der Link mit allen Parametern zusammengebaut und an die von mir geschriebene JS Funktion sendCompare() übergeben.
PHP Code:
<a href="javascript:void(0)" id="test_toCmp[{$_compare_testid}]" class="[{$_compare_class}]" onclick="sendCompare(this, '[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl="|cat:$oViewConf->getActiveClassName() params="am=1&addcompare=1&fnc=tocomparelist&aid=`$_compare_aid`&anid=`$_compare_anid`&pgNr=`$_compare_page`"|cat:$oViewConf->getNavUrlParams() }]')" rel="nofollow">[{ oxmultilang ident=$_compare_text_to_id }]</a>
DIe JS Funktion sendCompare()
============================
Code:
function sendCompare(obj, url)
{
alert(url);
var step = 0;
if(arguments.length >= 3)
step=arguments[2];
var xmlHttp = getxmlhttp();
if (xmlHttp) {
xmlHttp.open('GET', url, true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf8");
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
alert(xmlHttp.responseText);
}
};
xmlHttp.send();
}
}
Soweit ich das verstehe ist für das hinzufügen von Artikeln auf die Vergleichsliste die Klasse oxcmp_utils mit der Funktion tocomparelist verantwortlich. Ich vermute nun das die Ajax Anfrage garnicht bei der Klasse ankommt und deswegen nichts passiert oder ?
Falls ja? Wie kann ich den Fehler beheben bzw. welche Parameter muss ich wo Ändern um das zu beheben ?
Gruß
ewgeni