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

Webform-Fieldset mit input-Elementen clonen - jQuery oder Ajax?

Eingetragen von tetri999 (153)
am 18.07.2014 - 12:09 Uhr in
  • Module
  • Drupal 7.x

Hallo,

Ich habe eine Webform (ein Reservierungsformular), wo der User in einer Selectbox auswählen kann, wieviele Leute er anmelden will (1 bis 20, default:1).
Dann gibt es ein Fieldset mit 3 Textfeldern für jeden Teilnehmer - Vorname, Name und eins für das Geburtsdatum (mit DatePicker).
Bei Änderung der Teilnehmerzahl ( jQuery('select').change ) wird dieses Fieldset per jQuery so oft wie nötig geclont, umbenannt und angehängt:

<fieldset id="webform-component-travelers2" ...>
<fieldset id="webform-component-travelers3" ...>
...
bzw. wenn die Anzahl vermindert wird, werden die überzähligen entfernt (mit remove()).
Das funktioniert, solange ich in dem Formular bleibe und die Anzahl ändere.

das Problem:
Diese Angaben zu den Personen sind Pflichtfelder, d.h. wenn ich das Formular abschicke, wird per Ajax eine Validation durchgeführt und ggf. das Formular neu aufgebaut.
Dann passiert folgendes:
Bei allen Fieldsets stehen in den Inputfeldern die Werte des jeweils letzten Eintrags,
das liegt daran, daß die ID- und name-Attribute der input-Elemente überall die gleichen sind - die des geclonten Fieldsets.
Wenn ich diese Attribute beim clonen auch umbenenne

<input id="edit-submitted-travelers2-fname" name="submitted[travelers2][fname]"> ...
<input id="edit-submitted-travelers3-fname" name="submitted[travelers3][fname]"> ...
...
dann sind die Werte nach dem Ajax-Request völlig verschwunden.

meine Frage:
Offenbar müssen die nötigen Fieldsets über webform_options_form_alter() angelegt werden, damit sie von Dupal bzw. dem Webform-Modul ordentlich registriert werden -
Kann mir jemand erklären, wie das geht oder wo das genauer erläutert wird?
Wie kann ich denn aus jQuery('select').change heraus diese webform_options_form_alter() mit dem Parameter der Anzahl aufrufen und dann die nötige Anzahl der Fieldsets anhängen?

Vielen Dank im voraus für jeden Hinweis - mfG, Michael

‹ Nutzt hier jemand das Modul "Popup" und "Popup Views Integration"? Webform-Fieldset mit input-Elementen clonen - jQuery oder Ajax? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

vielleicht probierst du mal

Eingetragen von caw (2751)
am 18.07.2014 - 15:02 Uhr

vielleicht probierst du mal Webform Add More

C.A.W. Webdesign

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, zu Deiner Frage: Ja Du

Eingetragen von Hyp1 (1463)
am 19.07.2014 - 08:25 Uhr

Hi,

zu Deiner Frage:
Ja Du musst die Form auf der Serverseite modifizieren "webform_options_form_alter()".
So wie es aussieht modifizierst Du die Form nur Clientseitig "jQuery('select').change".

Zitat:

jQuery('select').change heraus diese webform_options_form_alter()

Forms werden normalerweise in Drupal registriert bevor Sie zum Client gesendet werden.

MfG

Robert

https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, schön -

Eingetragen von tetri999 (153)
am 19.07.2014 - 14:12 Uhr

soweit war ich mit meinen Überlegungen auch schon gekommen.
Die Frage war: wie macht man das?
Wie kann ich clientseitig mit jQuery('select .teilnehmer-anzahl').change serverseitig die Modul-Funktion webform_options_form_alter() aufrufen (Ajax?), und damit dann die Webform-Elemente ergänzen?

@caw:
aus Webform Add More:

Zitat:

Important Note: This module does not dynamically create fieldsets. You must create the maximum number of fieldsets allowed by cloning the original fieldset. Then, the fieldsets are progressively displayed as the Add More button is clicked.

Dazu brauche ich kein extra Modul, das kann ich auch selber machen - eine maximale Anzahl von Fieldsets in der Webform anlegen, und die dann über jQuery('select .teilnehmer-anzahl').change nur anzeigen oder verbergen - das wollte ich aber vermeiden, weil es theoretisch ziemlich viele werden könnten ...

mfG, Michael

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, Du musst einen Ajax

Eingetragen von Hyp1 (1463)
am 19.07.2014 - 13:33 Uhr

Hi,

Du musst einen Ajax Callback für Deine Form verwenden.
Dieser Link sollte Dich auf den richtigen Weg bringen:
http://stackoverflow.com/questions/16808118/trying-to-add-group-of-field...
Unten hat er ein Beispiel Link.

MfG

Robert

https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Theme Olivero - Rand entfernen?
  • Seite auf Xamp wird nicht geladen
  • Olivero veraendern
  • Upgrade Drupal 9 auf 10
  • Matomo(?) in Seite, aber Deinstalliert!
  • Upgrade Drupal 7 auf Drupal 9 / Inhalt erstellen zeigt nur Fehler an
  • Fehlermeldung nach Update auf Drupal 10
  • Wie Button erstellen?
  • footnotes bei D10 und CKE5
  • ckeditor Bilder skalieren
  • Bild in welcher Form die Beschriftung!
  • Drupal 10 und Adaptive Theme 2.0
Weiter

Neue Kommentare

  • Sowas geht immer mit
    vor 10 Stunden 17 Minuten
  • vielen Dank fuer Deine Tipps.
    vor 16 Stunden 25 Minuten
  • Routinefrage: Kann es ein
    vor 1 Tag 11 Stunden
  • @onkel Bob,Erst mal
    vor 1 Woche 1 Tag
  • Prinzipiell geht das schon.
    vor 1 Woche 1 Tag
  • Rubi_2021 schriebWie genau
    vor 2 Wochen 1 Stunde
  • Ok, war ein Versuch. ;-) Kann
    vor 2 Wochen 6 Stunden
  • Danke
    vor 2 Wochen 7 Stunden
  • Redest Du von dem
    vor 2 Wochen 9 Stunden
  • Mit sticht das hier ins
    vor 2 Wochen 9 Stunden

Statistik

Beiträge im Forum: 248801
Registrierte User: 19832

Neue User:

  • elkb
  • J. Berten
  • vohome

» Alle User anzeigen

User nach Punkten sortiert:
wla9333
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 2 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