2009-08-18 2 views
1

Ich möchte einen Link, der beim Klicken darauf eine einfache Ajax-Abfrage aufruft, die einen Datenbankeintrag aktualisiert. Normalerweise wäre das einfach, aber da die Authentifizierung stattfinden muss, bevor die Abfrage ausgeführt wird, muss ich in der Lage sein, die Ajax-Abfrage als den aktuell angemeldeten Benutzer auszuführen. I.e. Ich brauche Zugriff auf die Benutzervariable $ und ich möchte keine neue Verbindung erstellen.Einen Drupal-Datenbankanruf mit Ajax machen

Hat Drupal native Funktionen, die das können? Kann ich etwas dafür tun?

Antwort

4

Sie wollen ein Modul erstellen, um damit umzugehen. Dann wird die Funktion, die Sie über den Rückruf aufrufen, den angemeldeten Benutzer vollständig erkennen.

+0

Ich erkannte dies nach dem Posten der Frage. Vielen Dank. Es bestätigte, was ich dachte. – coderama

0

Erstellen Sie entweder einen Menüeintrag in einem Modul, das hook_menu() implementiert, und geben Sie einen Rückruf für eine Funktion an, die diese Anfrage bearbeitet - oder verwenden Sie das Modul Services und erstellen Sie ein neues Servicemodul.

1

Denken Sie daran, wenn jemand einen Link zu Ihrem AJAX-Ziel auf seiner Website macht und Leute dazu bringen kann, ihn anzuklicken (oder den Link auf ein img-Tag zu setzen), dann komisch Dinge können mit den Daten der Leute passieren, ohne dass sie das meinen.

Ich schlage vor, ein Token zu verwenden und zu überprüfen, ob das Token, das als Teil des Links übergeben wird, etwas mit dem Benutzer zu tun hat. Überprüfen Sie drupal_get_token() für eine gute Möglichkeit, eine zu generieren.