Neu Plugin kann nicht auf Datenbank zugreifen

Th3_J0k3

Neues Mitglied
13. Oktober 2020
19
1
Moin,
Ich versuche durch einen Ajax Call von einem PHP File eines Frontendlinks auf die Datenbank zuzugreifen, doch ich kriege ständig den Fehler: POST 500 (Internal Server Error). Wenn ich nur einen String o.Ä. rausgebe und die Datenbankabfrage lösche, funktioniert alles. Es muss also an dem Datenbankzugriff liegen.

PHP im Frontendlink:
PHP:
function getFromDatabase(){
    Shop::DB()->select('tartikel', 'kArtikel', $artikel_id); // $artikel_id ist vorher definiert.
}


if(!empty($_POST['action'])){
    if($_POST['action'] == 'get_price'){
        if(!empty($_POST['tType']) && !empty($_POST['tSurface']) && !empty($_POST['tLength']) && !empty($_POST['tWidth'])){
            echo getFromDatabase();
        }
    }
}

Ajax Call:
JavaScript:
    $.ajax({
        type: 'post',
        url: 'frontendlink_1.php',
        data: {
            'action': 'get_price',
            'tType': active_params.type,
            'tSurface': active_params.surface,
            'tLength': active_params.length,
            'tWidth': active_params.width
        },
        success: function(response) {
            document.getElementById("priceLabel").innerHTML = response;
        },
    });
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.066
188
Halle (Saale)
Wenn du an eine eigene php-Datei postest, kenn die natürlich auch den ganzen Shopcode nicht.
Du musst also entweder z.B. an die index.php posten und einen Hook nutzen, oder die includes/globalinclude.php requiren, damit der Autoloader ausgeführt und der Shop initialisiert werden.
 

Th3_J0k3

Neues Mitglied
13. Oktober 2020
19
1
Wenn du an eine eigene php-Datei postest, kenn die natürlich auch den ganzen Shopcode nicht.
Du musst also entweder z.B. an die index.php posten und einen Hook nutzen, oder die includes/globalinclude.php requiren, damit der Autoloader ausgeführt und der Shop initialisiert werden.

Danke für die Antwort! Sollte das in einem FrontendLink nicht eigentlich automatisch geschehen?
 

SamSoooM

Neues Mitglied
1. Februar 2021
8
0
Hallo Guten Tag,
Kann jemand mir helfen bitte.
ich habe die folgende Funktion in Javascript und versuche sie durch eine Ajax Call durch den HOOK HOOK_IO_HANDLE_REQUEST - 213 aufzurufen

habe versucht, wie im Kommentar erwähnt, an die index.php zu posten
Wenn du an eine eigene php-Datei postest, kenn die natürlich auch den ganzen Shopcode nicht.
Du musst also entweder z.B. an die index.php posten und einen Hook nutzen, oder die includes/globalinclude.php requiren, damit der Autoloader ausgeführt und der Shop initialisiert werden.


JavaScript:
$(document).on('change', selectorBrand, function (event) {
        let currentBrand = $(this).find('option:selected').data('brand');
        resetDisplacements();
        resetModels();
        resetYears();

        $.ajax({
                type: 'POST',
                url: 'index.php',
                data: {
                    'io': JSON.stringify(
                        {
                            'name': 'getDisplacements',
                            'params': [{'brand': currentBrand}]
                        }
                    ),
                }
            }
        ).done(function (data) {
            if (data.success) {
                setDisplacements(data.displacements);
            } else {
                console.log('couldn\'t, load displacements for ' + currentBrand);
            }
        });
    });


wir wollen unser Shop zu Shop 5 updaten und wollen zuerst unsere eigenen Plugins umzuschreiben und testen
bin noch neu hier im Shop 5 und mit dem dispatcher-> listener auch
ich will die Funktion getDisplacements() in IO registrieren wie kann ich das machen bitte?
im Bootstraper Klasse :

PHP:
namespace Plugin\getor_bike_filter;

use JTL\Events\Dispatcher;
use JTL\Plugin\Bootstrapper;
use JTL\Shop;
use JTL\Smarty\JTLSmarty;
use JTL\IO\IO;
use JTL\Helpers\Request;
use Plugin\getor_bike_filter\classes\BikeFilter;
use JTL\Plugin\BootstrapperInterface;

class Bootstrap extends Bootstrapper implements BootstrapperInterface{

public function boot(Dispatcher $dispatcher)
   {
       parent::boot($dispatcher);
       $plugin       = $this->getPlugin();

       $dispatcher->listen(
           'shop.hook.' . \HOOK_IO_HANDLE_REQUEST , function (array &$args){
             $args['io']->register('getDisplacements', getDisplacements );
             $args['io']->register('getModels', getModels);
             $args['io']->register('getYears', getYears);
             $args['io']->register('setActive', setActive);
             $args['io']->register('setInactive', setInactive);
       });



       $dispatcher->listen(
           'shop.hook.' . \HOOK_SMARTY_OUTPUTFILTER,
           function (array &$args){
             $this->hook140();
           }
       );

   }

 function getDisplacements($params)
     {
         if (!isset($params['brand'])) {
             return [
                 'success' => false,
             ];
         }
         $brand = $params['brand'];
         $displacements = BikeFilter::findDisplacementsByBrand($brand);
         return [
             'success' => true,
             'displacements' => $displacements,
         ];
     }

}


Dankeschön !
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.066
188
Halle (Saale)
Das was da steht ist jedenfalls kein gültiger PHP-Code?
In IO::register() musst du als zweiten Parameter schon einen Callback angeben - das soll scheinbar die Methode getDisplacements() in der Bootstrapper-Klasse sein?

Dann sähe ein Minimalbeispiel ungefähr so aus:
Code:
<?php

namespace Plugin\getor_bike_filter;

use JTL\Events\Dispatcher;
use Plugin\getor_bike_filter\classes\BikeFilter;
use JTL\Plugin\Bootstrapper;

class Bootstrap extends Bootstrapper
{
    public function boot(Dispatcher $dispatcher)
    {
        parent::boot($dispatcher);
        $dispatcher->listen(
            'shop.hook.' . \HOOK_IO_HANDLE_REQUEST , function (array &$args){
            $args['io']->register('getDisplacements', [$this, 'getDisplacements']);
        });
    }

    public function getDisplacements($params)
    {
        if (!isset($params['brand'])) {
            return [
                'success' => false,
            ];
        }
        $brand = $params['brand'];
        $displacements = BikeFilter::findDisplacementsByBrand($brand);
        return [
            'success' => true,
            'displacements' => $displacements,
        ];
    }

}
 
  • Gefällt mir
Reaktionen: SamSoooM
Ähnliche Themen
Titel Forum Antworten Datum
Neu Slider Plugin wie z.B. Slider Revolution für WP Plugins für JTL-Shop 0
Neu Mollie Webstollen Plugin Plugins für JTL-Shop 0
Neu Plugin: JTL Header Version: 1.0.0-beta.4 verursacht flackerndes Logo Plugins für JTL-Shop 7
Neu Plugin zum Ergänzen der ShopID PrestaShop-Connector 1
Plugin Suche FAQ Produkt Plugin Upgrade JTL-Shop4 auf JTL-Shop5 0
Neu 💙 Neues Plugin: Warenkorb-Button Plus (für JTL-Shop 4 und JTL-Shop 5) Plugins für JTL-Shop 2
Neu 💙 Neues Plugin: Payment & Shipping Icons Plus (für JTL-Shop 4 und JTL-Shop 5) Plugins für JTL-Shop 0
Neu Mollie Plugin - Zahlungslink erneut erstellen Plugins für JTL-Shop 1
Neu Backup Plugin schon JTL-Shop 5 ready? Plugins für JTL-Shop 0
Neu Attribut "keine Preissuchmaschinen" bei Google Shopping Plugin Onlineshop-Anbindung 0
Neu Shopauskunft Plugin für Shop 4 Plugins für JTL-Shop 3
Neu Mehrsprachlichkeit im Shop - Problem mit Multi-Domain Plugin von [tech]Neo Plugins für JTL-Shop 1
Sprachwechsel in Plugin Shop 5 Hook 140 sprachvariable nicht aktuell Upgrade JTL-Shop4 auf JTL-Shop5 0
Neu 💙 Neues Plugin: Energielabel (für JTL-Shop5) - empfohlen vom Händlerbund! Plugins für JTL-Shop 0
Neu AJAX Anfrage an Plugin senden Technische Fragen zu Plugins und Templates 2
Neu 💙 Neues Plugin: Messenger Kontaktlayer (für JTL-Shop5) Plugins für JTL-Shop 5
Neu 💙 Neues Plugin: Artikelsticker Plus (für JTL-Shop5) Plugins für JTL-Shop 0
Neu JTL Shop5 Plugin " Gefahrensymbol" Com-ins-netz CIN GmbH Plugins für JTL-Shop 0
Neu Mixbox Plugin für JTL-Shop5 Com-ins-netz CIN GmbH Plugins für JTL-Shop 0
Neu Shop5 Plugin " Pfand incl. Altteilesteuer für den KFZ Handel" Com-ins-netz CIN GmbH Plugins für JTL-Shop 0
Neu Exit intent Popup Plugin für JTL 5 User helfen Usern - Fragen zu JTL-Wawi 0
Neu Woocomerce Shop Ablgeich Fehler JTL-Plugin : CustomerTrait.php:68 WooCommerce-Connector 1
Neu 📢 Plugin "Geschenkartikel Plus" by NETZdinge.de Plugins für JTL-Shop 0
Neu 💙 Neues Plugin: FAQ mit strukturierten Daten (für JTL-Shop 5) Plugins für JTL-Shop 0
Neu Plugin für Datenblatt-Erstellung gesucht User helfen Usern - Fragen zu JTL-Wawi 0
Neu Google Shopping (Plugin) Liste Plugins für JTL-Shop 1
Neu 💙 Neues Plugin: Kategorietext Anzeige Plus (für JTL-Shop4 und JTL-Shop5) Plugins für JTL-Shop 0
Neu Plugin Entwicklung: Smarty Variable in .tpl file anmelden Technische Fragen zu Plugins und Templates 1
Neu 💙 Neues Plugin: Lexikon/Glossar (für JTL-Shop5) Plugins für JTL-Shop 0
Neu Google Shopping Plugin, ein weiterer Parameter, wie? Plugins für JTL-Shop 1
Neu 💙 Neues Plugin: Gastro Order (für JTL-Shop4) Plugins für JTL-Shop 2
Neu 💙 Neues Plugin: Kundenfragen und -antworten für Artikel (für JTL-Shop5) Plugins für JTL-Shop 5
Neu 💙 Neues kostenloses Plugin: Eye-Able® Schnittstelle für JTL-Shop5 (für barrierefreie Shops) Plugins für JTL-Shop 3
Neu Google Shopping Plugin - SQL möglich? (z.B. für Warengruppe) Plugins für JTL-Shop 0
Neu Plugin: JTL Exportformat Google Shopping. Neue und gebrauchte Artikelzustände ausgeben. Technische Fragen zu Plugins und Templates 0
Neu Analytics Plugin - Welches und warum? Plugins für JTL-Shop 2
Neu Portlet Plugin Erstellung Plugins für JTL-Shop 1
Neu Wer baut Plugin Zahlungsartauswahl nach Lieferstatus Dienstleistung, Jobs und Ähnliches 2
Neu Neues Plugin: Adressprüfung und Korrektur in Echtzeit für JTL 5 Plugins für JTL-Shop 0
Neu Google Shopping Plugin mit korrektem Steuerausweis bei den Versandkosten? Plugins für JTL-Shop 9
Neu warum kann ich aus variationen keine varkombis erstellen? User helfen Usern - Fragen zu JTL-Wawi 5
Neu Einzeiliges Megamenü ... wer kann helfen Templates für JTL-Shop 1
Neu Kann keine Sonderpreise eingeben JTL-Wawi - Fehler und Bugs 1
Beantwortet Suchanfrage werden nicht gespeichert. Wo kann man es freischalten? Allgemeine Fragen zu JTL-Shop 5
Neu Und wieder mal Probleme mit Artikelbildern... Wer kann helfen? JTL-Wawi - Fehler und Bugs 0
Neu Wie kann ich eine Zahl formatieren Allgemeine Fragen zu JTL-Shop 7
Neu Vorauswahl Produktkategorien zeigt nicht die Kats die bei Einzelartikel auswählen kann. Amazon-Anbindung - Fehler und Bugs 0
Neu [Shopware 6] Erstelltes Menu im JTL-Wawi kann im Shop keinem Layout zugewiesen und gespeichert werden Shopware-Connector 5
Neu wie kann ich alle eigene Felder vom Artikel per Ameise importieren? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Meta-Keywords automatisch generiert -wo kann man das abschalten? Betrieb / Pflege von JTL-Shop 2

Ähnliche Themen