Neu Eigene Post/Put requests erstellen.

algonix

Neues Mitglied
26. Mai 2020
7
0
Hallo,
wir möchten in unserem Shop Kunden die möglichkeit geben, gesetzte Filter zu speichern. Hierfür habe ich ein Plugin programmiert das einen Eigenen Frontent Link erstellt. Klappt alles soweit super, auch das fetchen der Daten von der Datenbank.

Nun möchte ich den Kunden natürlich auch die möglicheit geben gespeichert Filter in die Datenbank zu schreiben. Hier hakt es.

Ich habe leider noch keine möglichkeit gefunden wie ich nach dem "onclick" events daten an die DB sende.

Folgende Methode hat leider nicht funktioniert, da die php Datei anscheinend nicht gefunden wird (Bekomme aber keine Fehlermeldungen).
Code:
jQuery.ajax({
    type: "POST",
    url: 'filter_Query.php',
    dataType: 'json',
    data: {functionname: 'add', arguments: ["link"]},

    success: function (obj, textstatus) {
                  if( !('error' in obj) ) {
                      yourVariable = obj.result;
                  }
                  else {
                      console.log(obj.error);
                  }
            }
});

In bestehenden Themen habe ich gelesen, dass ich das wohl irgendwie über den Hook "HOOK_IO_HANDLE_REQUEST" abhandeln muss,
oder über die &io.request() ?!

Kann mir hier kurz wer weiterhelfen wie genau ich vorgehen muss? Wo schreibe ich dann den eigentichen SQL query?

Edit: Arbeite mit JTL 5

VG
algo
 
Zuletzt bearbeitet:

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
527
Halle
Hallo,
unsere Plugin-Entwickler-Dokumentation findest du hier: https://jtl-devguide.readthedocs.io/projects/jtl-shop/de/latest/shop_plugins/index.html Diese ist auch in Bezug auf JTL-Shop5 aktuell.
Um Post-Daten zu senden, hast du prinzipiell die Möglichkeit ein normales Formular mit einem eigenen Frontendlink als Ziel zu verwenden. In dem Frontendlink kannst du dann bequem über
PHP:
JTL\Helpers\Request::postVar('deinePostVariable')
zugreifen.
Wenn du einen Ajax-Call verwenden möchtest, dann wird es etwas komplexer. Hier musst du über HOOK_IO_HANDLE_REQUEST deinen eigenen Ajax-Handler registrieren. Für das Versenden solltest du dann nicht direkt die jQuery-Funktionen, sondern die IO-Funktionen des Templates verwenden. z.B.:
JavaScript:
$.evo.io().call()
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
7.753
2.182
Berlin

Ähnliche Themen