Ajax "undefined" bei mehrdimensionalen Varianten

Hallo,

wir wollen unsere Artikel auf mehrdimensionale Varianten umbauen. Im Zuge dieser Umstrukturierung müssen wir unsere Umgebaute details.tpl anpassen.

Im standard Azure-Template werden bei der Auswahl einer Variante (in unserem Fall eine Farbe oder Größe) per Ajax die entsprechenden Artikeldaten neu geladen. Das Bild wird ausgetauscht sowie der Preis, Artikeldaten und der Warenkorb-Button angepasst. Soweit ist die Funktionsweise bekannt.

Bei der Entwicklung damals wurde auf diese Ajax-funktion verzichtet. Nun muss diese nachträglich eingebaut werden. Mit den original Azure-Templatedateien eigentlich kein Problem. Aber leider funktioniert es nicht so, wie es sollte.

Bei der Auswahl einer bestimmten Variante werden die Daten nicht richtig geladen. Es erscheint nur ein [I]undefined[/I] an der Stelle, wo die neuen Daten in das div geladen werden sollten. Dies klingt ganz danach, als ob die per Ajax nachgeladenen Daten nicht richtig validiert oder gar leer übergeben werden. Klingt eigentlich nach einem Programmierfehler.

Jetzt wirds aber kurios. Im standard Azure-Template funktioniert es ebenfalls nicht. Es erscheint ebenfalls nur ein [I]undefined[/I]. Im Basic-Template hingegen funktioniert es. Dies scheint aber daran zu liegen, dass da noch nicht die Ajax-Funktionen von jQuery verwendet werden.

jQuery ist ordnungsgemäß eingebunden in der neusten Version. Daran scheint es also nicht zu liegen. Ich vermute eher, dass es ein Konfigurations-Problem ist.

Auf unserem Testserver haben wir die Artikel bereits umstrukturiert. Zu beachten ist dabei eigentlich nur, dass die Variantenauswahl in der Struktur [I]Größe | Farbe[/I] (bsw.: L | Schwarz, XL | Schwarz) mit einem Trenner dazwischen angelegt werden muss. Der name der Variantenauswahl muss ebenfalls so umbenannt werden.

Muss noch etwas anderes beim Anlegen mehrdimensionaler Varianten beachtet werden?
Ist bei jemanden von euch dieses Phänomen ebenfalls mal aufgetreten?
Gibt es Lösungsansätze?

Für Hilfe oder Ratschläge wäre ich sehr dankbar.

hoert sich danach:

Der Fehler tritt auf, wenn man die Bewertungen ausschaltet

http://forum.oxid-esales.com/showthread.php?t=15024&highlight=ten+aufklickbar

an?!

[QUOTE=tobi73de;96123]hoert sich danach:

http://forum.oxid-esales.com/showthread.php?t=15024&highlight=ten+aufklickbar

an?![/QUOTE]

Danke für den Hinweis tobi. Aber leider scheint es nicht daran zu liegen. Die Bewertungen sind aktiviert und dennoch tritt der Fehler auf. Auch bei ausgeschalteter Bewertungsfunktion gibt es keine Veränderung.

Beim Parameter “renderPartial” sollte json kommen:
http://demoshop.oxid-esales.com/community-edition/Bekleidung/Fashion/Fuer-Ihn/Shirts-Co/Kuyichi-T-Shirt-TIGER.html?renderPartial=detailsMain
wenn man bei egoist.de an eine Artikelurl ?renderPartial=detailsMain anhängt, kommt html.

In Oxshopcontrol.php ca. Zeile 324 steht dafür folgendes:

        if (oxConfig::getParameter('renderPartial')) {
            $oOutput->setOutputFormat(oxOutput::OUTPUT_FORMAT_JSON);
            $oOutput->output('errors', $this->_getFormattedErrors());
        }

und in oxoutput.php ca zeile 191:


    public function output($sName, $output)
    {
        switch ($this->_sOutputFormat) {
            case self::OUTPUT_FORMAT_JSON:
                $this->_aBuffer[$sName] = $output;
                break;
            case self::OUTPUT_FORMAT_HTML:
            default:
                echo $output;
                break;
        }
    }

Ist das bei euch so?

[QUOTE=leofonic;96227]Beim Parameter “renderPartial” sollte json kommen:
http://demoshop.oxid-esales.com/community-edition/Bekleidung/Fashion/Fuer-Ihn/Shirts-Co/Kuyichi-T-Shirt-TIGER.html?renderPartial=detailsMain
wenn man bei egoist.de an eine Artikelurl ?renderPartial=detailsMain anhängt, kommt html.

In Oxshopcontrol.php ca. Zeile 324 steht dafür folgendes:

        if (oxConfig::getParameter('renderPartial')) {
            $oOutput->setOutputFormat(oxOutput::OUTPUT_FORMAT_JSON);
            $oOutput->output('errors', $this->_getFormattedErrors());
        }

und in oxoutput.php ca zeile 191:


    public function output($sName, $output)
    {
        switch ($this->_sOutputFormat) {
            case self::OUTPUT_FORMAT_JSON:
                $this->_aBuffer[$sName] = $output;
                break;
            case self::OUTPUT_FORMAT_HTML:
            default:
                echo $output;
                break;
        }
    }

Ist das bei euch so?[/QUOTE]

Hallo Leofonic,

zweiteres kann ich bestötigen. Die Codezeilen sind vorhanden.

Die oxshopcontrol.php kann ich im core Verzeichnis komischerweise nicht finden. Ich habe nur eine oxshop.php und eine oxshoplist.php.

Liegt die Datei evtl. in einem anderen Verzeichnis? Was für eine Funktionsweise hat die Datei? Vielleicht kommt es zu diesem Problem da die Datei offensichtlich fehlt.

oxshopcontrol ist im views-Ordner.

[QUOTE=leofonic;97155]oxshopcontrol ist im views-Ordner.[/QUOTE]

Danke. Hab jetzt in der Datei nachgeschaut. In Zeile 324 kommt keine deiner beschrieben Codezeilen vor.

Die Codezeilen kommen bei mir auch an anderer Stelle nicht vor in dieser Datei.
Anscheinend muss ich diese mal aktualisieren.

Danke für den Hinweis leofonic. Ich berichte sobald ich neues habe.