Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 29. November 2019 14:37

philfr
probiert CMS/ms aus
Registriert: 08. Mai 2019
Beiträge: 61

Verzweigtes Formular erstellen

Hallo,

Ich habe ein größeres mehrseitiges Formbuilder-Formular.
Das soll nun noch so erweitert werden, dass in Abhängigkeit von der Antwort in einem Feld verschiedene weitere Fragen gestellt werden. Die Antworten sollen dann alle zusammen in einem Datensatz landen.

Nun überlege ich, wie man so etwas am besten umsetzt.

  • Man könnte ein großes Formular bauen, wo alle Fragen drin sind, und dann irgendwie (nur wie?) manche Seiten überspringen.

  • Oder man erstellt mehrere separate Formulare und springt dann vom ersten in Abhängigkeit der Antwort zum passenden Folgeformular, muss dabei aber eine Kennung übergeben, damit das Folgefomular weiß, welchen Datensatz es ergänzen muss.

  • Oder was anderes?

Frage an euch: Für welche Lösung würdet ihr euch entscheiden?

Offline

#2 29. November 2019 16:14

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Verzweigtes Formular erstellen

Ich hätte spontan an Javascript und CSS gedacht. D.h. je nachdem was in einem Feld angegeben wurde, werden bestimmte Felder ein- bzw. ausgeblendet. Ist aber nicht unbedingt die beste Lösung, ein Formular von Javascaript abhängig zu machen. Vor allem auch bei der Auswertung. Da kommen dann Felder an, die eigentlich garnicht hätten ausgefüllt werden müssen. D.h. man muss so oder so auch serverseitig prüfen.

Hat man denn im Template des FormBuilders in den einzelnen Formularseiten Zugriff auf die Daten, die im vorherigen Schritt eingegeben wurden? Wenn ja, könnte man ja die einzelnen Formularseiten entsprechend aufbauen, oder?

Kannst Du Dein Formular mal als XML exportieren?
Dann könnte man das mal selber alles testen.
Ich tu mich da immer schwer, ein Formular nach den Kriterien aufzubauen, die hier manchmal gefragt werden. Weil ich ja nicht die konkreten Abhängigkeiten der einzelnen Felder kenne. Und ich bin einfach zu faul, mir da selber etwas auszudenken wink


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 29. November 2019 16:50

philfr
probiert CMS/ms aus
Registriert: 08. Mai 2019
Beiträge: 61

Re: Verzweigtes Formular erstellen

Mit JS blende ich jetzt ein einzelnes Feld aus, das klappt.
Das Formular hat schon 3 Seiten, und die Verzweigungen sind jeweils auch mehrere Seiten groß, so dass ich dann komplette Seiten überspringen muss, was vermutlich nicht geht, ohne das Formbuilder-Modul zu verändern.

Mit dem Reimport des xml-Exports wird es vermutlich schwierig, weil ich haupsächlich Cataloger-Felder habe und ziemlich viel an diesem Modul basteln musste, damit es überhaupt funktioniert. Ohne die Katalogdaten bleibt das Formular leer.

Offline

#4 01. Dezember 2019 11:54

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.227
Webseite

Re: Verzweigtes Formular erstellen

Verzeihung aber wenn ich das so lese ist es dann nicht einfacher das in PHP mit MySQL zu programmieren?
Formbuilder kann viel aber halt nicht alles.
Wenn da Module angepasst werden dann frage ich mich wie das ganze auf Dauer zu pflegen ist.

Ich nutze Formbuilder intensiv und habe gerade angeschaut was ich für Möglichkeiten sehe aber die haben Du und Nan schon beschrieben, Javascript und CSS.


MfG
Jan


Ubuntu 16.04 KDE - Kubuntu 18.04 / win10 (1 duo-boot laptop)- LAMP
Raspi 4b mit Ubuntu 20.04 (64bit) und Mate.

Offline

#5 05. Januar 2020 12:56

philfr
probiert CMS/ms aus
Registriert: 08. Mai 2019
Beiträge: 61

Re: Verzweigtes Formular erstellen

Mittlerweile läuft alles wie gewünscht.
Es ist alles in einem Formular mit 8 Seiten, mittels JS werden nicht benötigte Seiten übersprungen, indem die Werte des Feldes fbrp_continue angepasst werden.
Um bei Klick auf "Zurück" auf der richtigen Seite zu landen, muss auch fbrp_previous angepasst werden.
Das alles klappt ohne Änderung des Moduls, aber folgendes nicht:
Man springt von Seite 4 auf Seite 7, die Überprüfung stellt danach fest, dass auf Seite 4  ein Pflichtfeld nicht ausgefüllt wurde, springt zurück und landet auf Seite 6

Lösung war eine Erweiterung des Moduls in der Datei Form.class.php:
Neben fbrp_continue und fbrp_previous wird noch ein Feld fbrp_current angelegt.
Dessen Wert wird in die neue Variable $LastPage übernommen.
Die Funktion PageBack() wird wie folgt geändert:

[== php ==]
function PageBack()   
{     if ($this->LastPage > 0)		
  {
 	$this->Page = $this->LastPage; 		
  } else { 
	$this->Page--; 		
  }   
}

Vielen Dank noch mal für die Tipps
Frank

Offline

#6 05. Januar 2020 14:23

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.227
Webseite

Re: Verzweigtes Formular erstellen

Kompliment!

diese Link habe ich gespeichert für wenn ich es mal brauche!

MfG
Jan


Ubuntu 16.04 KDE - Kubuntu 18.04 / win10 (1 duo-boot laptop)- LAMP
Raspi 4b mit Ubuntu 20.04 (64bit) und Mate.

Offline