Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Funktion mit einem Link/Button auslösen ohne die Seite zu verlassen

Eingetragen von Flexnot (2)
am 02.04.2013 - 14:45 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Hallo,

ich hoffe der Titel des Themas ist nicht zu verwirrend, mir fällt leider nicht ein, wie ich es konkreter umreissen kann auf eine Zeile.

Ich habe mittels theme('table') eine Tabelle erstellt, die den Inhalt einer MySQL Tabelle darstellt. Jetzt möchte ich in jeder Zeile einen Link hinzufügen, der bei Aktivierung die aktuelle Zeile aus der Datenbank löscht und die Seite neu ladet, damit die Tabelle wieder korrekt dargestellt wird.

Mein bisheriger Ansatz ist es einen Link hinzuzufügen, dem der Primärschlüssel als Argument angehängt wird. Dieser Link führt auf eine neue Seite, welche die Löschoperation ausführt und leitet einen dann wieder zurück auf die Seite mit der Tabelle. Dies erscheint mir aber "unschön". Gibt es hierfür vielleicht einen eleganteren Weg?

Vielen Dank für eure Hilfe!

‹ Mehrere Formulare auf einer Page Funktion mit einem Link/Button auslösen ohne die Seite zu verlassen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Gibt es einen wichtigen

Eingetragen von montviso (2189)
am 02.04.2013 - 19:17 Uhr

Gibt es einen wichtigen Grund, den Inhalt der Tabelle nicht als Node abzubilden?
Wenn Du es als Node abbilden würdest, dann könntest Du die Bulk-Operations zum Löschen nutzen.
(Modul Views Bulk Operations).

Ansonsten müßtest Du mal die Batch API ansehen
http://api.drupal.org/api/drupal/includes!form.inc/group/batch/7
Da gibst Du in der Zeile
batch_process('node/1');
eine URL an (im Beispiel node/1) auf die die Seite nach erfolgreicher Durchführung des Prozesses geleitet wird.
In Deinem Fall also auf die Seite, auf der sich die Tabelle mit dem Löschlink befindet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kurzer Umriss was das Modul

Eingetragen von Flexnot (2)
am 02.04.2013 - 20:28 Uhr

Kurzer Umriss was das Modul leisten soll:

Ein Admin kann im Backend Veranstaltungen mit einer Anzahl von Parametern anlegen. (Tabelle enrollments_events, Primärschlüssel "eid")
Ein User kann sich einmal für eine angelegte Veranstaltung anmelden. (Daten werden in der Tabelle enrollments_users gespeichert, zusammengesetzter Primärschlüssel "eid" und "uid" (userId)
Ein Admin kann sich im Backend für jede Veranstaltung eine Übersicht über die Anmeldungen ansehen (in angesprochener Tabelle) hier soll dann eine Zeile gelöscht werden können. Dies soll eine Komfortfunktion sein. Der User soll nur auf einen Link klicken und es passiert etwas, anstatt, dass er nochmal ein Formular bestätigen muss. Zusätzlich sollte die Ansicht nach Möglichkeit nicht verlassen werden.
(Zusätzlich gibt es natürlich noch Edit Funktionen etc.).

Da relativ viele Bedingungen existieren wann sich ein User anmelden darf und wann nicht, ging ich als Drupal Anfänger (keine Woche alt) davon aus, dass ein Node nicht die einfachste Lösung sein wird. Man darf mich hier aber sehr gerne berichtigen. :)

Der Batch würde den Workflow vermutlich ähnlich unterbrechen wie den User automatisch über zwei Seiten zu schicken :/

Trotzdem Danke für Ihre Hilfe :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

OK...da hast Du Dir ja was

Eingetragen von montviso (2189)
am 03.04.2013 - 06:57 Uhr

OK...da hast Du Dir ja was vorgenommen als Neuling.;-)
In meiner ersten Woche war ich noch mit einfacheren Themen am Verzweifeln.

Grundsätzlich solltest Du alles, was irgendmöglich ist mit Drupal-Funktionalitäten machen.
Dann bekommst Du ja viele Funktionalitäten frei Haus geliefert.

Wie so ein Batch sich anfühlt kannst Du leicht testen, wenn Du einen Node anlegst und diesen aus der Übersicht unter admin/content heraus wieder löscht.
Es kommt in der Tat eine Rückfrage, ob man wirklich löschen will.
Dann ist man wieder auf der Liste.

Sicher kann man die Rückfrage ausschalten mit einem hook_form_alter.

Ansonsten könnte Dir bei Deinem Vorhaben das Modul Rules eine Hilfe sein.
Da kann man Regeln erstellen, daß bei bestimmten Ereignissen unter bestimmten Umständen ein bestimmte Aktion ausgeführt wird.
Das nenne ich das Schweizer Messer für Drupal, weil man da sehr viel im Hintergrund ablaufen lassen kann.

Für genau den beschriebenen konkreten Fall ist es nicht so hilfreich, aber Du hast ja vermutlich noch mehr auf dem Plan.
Z.B. diese Bedingungen bei der Anmeldung könnte man dabei überprüfen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ajax

Eingetragen von oteno (775)
am 03.04.2013 - 12:06 Uhr

Natürlich auch nicht einfach für einen Anfänger, aber wenn Du nach einem Request keinen Relaod der Seite (oder einer anderen Seite) willst, kommst Du um Ajax schlecht rum. Drupal stellt dafür ein eigenes Framework zur Verfügung: http://api.drupal.org/api/drupal/includes!ajax.inc/group/ajax/7
Gruß
Christian

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 5 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Tag 21 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 7 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 8 Wochen 14 Stunden
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association