Puncte:0

Conectați React/AJAX la modulul personalizat

drapel cn

Încerc să creez o componentă mini-CRUD pe site-ul Drupal 8. Preiau date dintr-o sursă externă și le redau folosind ReactJS.

Doresc să actualizez baza de date atunci când un utilizator face clic pe un buton din componenta React.

<button
    onClick={() =>
        $.ajax({
            type: "POST",
            url: "../path-to-file/script.php",
            data: { id: 'some data' },
        })}
>
    click me
</button>
  • Am scris componenta React (index.js),
  • Am conectat componenta React la un script PHP personalizat cu un script AJAX (script.php).
  • Am scris un modul personalizat Drupal 8 pentru a gestiona actualizările bazei de date (mymodule.modul).

Cu toate acestea, nu îmi pot da seama cum să conectez scriptul PHP personalizat (script.php) la modul (mymodule.modul) pentru a efectua actualizările.

Orice ajutor ar fi foarte apreciat!

drapel cn
Nu este clar ce vrei să faci. Când doriți să executați scriptul? Găsiți un cârlig drupal care se execută la momentul dorit și utilizați acel cârlig în modul pentru a executa scriptul.
Darcy avatar
drapel cn
Mulțumesc Patrick, vreau să execut scriptul când un utilizator dă clic pe un buton. Mi-am actualizat întrebarea de mai sus pentru a include asta!
Puncte:3
drapel cn

Folosirea AJAX pentru a permite utilizatorului să introducă în mod arbitrar date în baza de date printr-un script PHP personalizat pare o idee foarte proastă, deoarece deschide o ușă în spate în Drupal, eludând securitatea Drupal.

Pentru a face acest lucru în modul „Drupal”, puteți utiliza JSON:API modul în nucleu pentru a gestiona operațiunile CRUD. Acesta este un subiect mult prea larg pentru a fi descris în profunzime aici, dar Drupalize.me are un tutorial bun (plătit)..

Acest lucru vă permite să utilizați JSON:API do CRUD pe entitățile Drupal (noduri, media, termeni de taxonomie și așa mai departe) folosind aceleași permisiuni de acces ca site-ul web Drupal.

Pentru a utiliza această abordare, va trebui să configurați entitățile din Drupal, astfel încât să primească datele corect atunci când sunt actualizate prin JSON:API.

În loc să folosesc un script PHP personalizat, aș crea unul nou JSON:Resursa API, care vă permite să faceți orice tip de procesare doriți printr-un punct final JSON:API personalizat. Făcând acest lucru, obțineți toate beneficiile de igienizare a datelor care sunt încorporate în nucleul Drupal.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.