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 (2730)
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

  • DDEV: Website vom lokalen Server auf Webspace übertragen
  • MariaDB 10.6
  • Wie kann man die Ansicht der Benutzer erweitern?
  • (Gelöst) SIMPLE XML SITEMAP liefert die Sitemap für das Menü nicht aus
  • Entity Reference - Title Felder werden als Link angezeigt
  • PHP 8.1 - Deprecated function: rtrim()
  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • Drupal Website gestalten
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
Weiter

Neue Kommentare

  • Hallo Werner, super, vielen
    vor 9 Stunden 12 Minuten
  • Du mußt die Struktur
    vor 15 Stunden 59 Minuten
  • Ergebnis des upgrade
    vor 1 Tag 9 Stunden
  • Danke, funktioniert einwandfrei!
    vor 1 Tag 10 Stunden
  • Bei Drupal 7 war diese Seite
    vor 1 Tag 11 Stunden
  • Es ist ein Paragraph
    vor 2 Tagen 13 Stunden
  • Danke fürs Feedback. Gut dass
    vor 5 Tagen 5 Stunden
  • Patch angewandt
    vor 5 Tagen 8 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 10 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 10 Stunden

Statistik

Beiträge im Forum: 247875
Registrierte User: 19594

Neue User:

  • Davidsnins
  • kudes
  • Tkakah

» Alle User anzeigen

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