SQL Web-Formularfelder nach entsprechend vorhandener SQL-Tabelle darstellen?

SimonK91

Lieutenant
Registriert
März 2012
Beiträge
900
Hallo Forum,


ich suche zur Zeit nach einer Möglichkeit, die Eingabefelder für ein Webformular in Abhängigkeit zu einer jeweils vorhandenen SQL-Tabelle darzustellen.

Es soll eine Registrierungsmaske für unterschiedliche Personengruppen erstellt werden:
Allerdings gibt es je nach Person unzählige Eingabefelder, die nur angezeigt werden sollen wenn bestimmte andere Voraussetzungen/Gegebenheiten für den Benutzer zutreffen. Daher soll das Formular auf das wesentliche reduziert werden (für jeden Benutzer sind meist nur ca. 30% der möglichen Eingabefelder nötig).

Ich habe zur Zeit Tabellen mit allen theoretisch möglichen Eingabefeldern (Name, Mail, Ort, verwendete Software, usw). Der Ansatz wäre nun, je nach Benutzer (es sind letztendlich ca. 50-100 individuelle Zuschnitte) eine Tabelle mit den entsprechend benötigten Feldern anzufertigen, und anschließend auch nur genau diese Felder auf einer HTML Seite (Bootstrap Gerüst) dem Benutzer nach seinem Login auf der Seite zugeschnitten darzustellen.

Ich hoffe das war halbwegs verständlich und jemand kann mich auf den richtigen Weg bringen.
Die Problematik ist für mich aktuell nicht nur, nur die benötigten Felder dem Benutzer anzuzeigen, sondern dazu gehören ja auch immer noch die jeweiligen Beschriftungen auf HTML Ebene. Vielleicht muss ich pro Feld ebenfalls ein Feld in der Datenbank haben in dem die entsprechende HTML-Beschriftung für das Input-Feld auch hinterlegt ist. Ebenfalls soll das ganze ja auch halbwegs schick sortiert dargestellt werden. Meine Idee wäre sämtliche HTML/CSS Formatierungen ebenfalls mit in die SQL Tabelle zu hinterlegen und bei bedarf mit auszugeben (z.B. ob nach der Adresseingabe eine Horizontale Linie eingefügt wird um die nachfolgenden Eingabefelder thematisch zu trennen usw).

Hoffe sehr das mir jemand ein paar Tipps geben kann oder einschätzen kann ob die Idee/ der Ansatz dafür geeignet wäre. Danke!
 
Versuch mal deine Datenpunkt in unterschiedliche Tabellen in Relationen zueinander zu setzen:
http://schwarze-consulting.de/technologie/2015/04/15/Relational-noSQL-2.html
Vielleicht hilft dir hier MySQL Workbench etwas.

Den HTML-Titel bzw. den "Namen" würde ich in einer Spalte mit abspeichern (ggf. Mehrsprachig?).

Ansonsten hat HTML/CSS nichts in der Datenbank verloren. Du kannst anhand der Relationen, Tabellen oder einer angehängten Kennung (Spalte: CSS-Klasse/ID) so etwas mit abspeichern. Aber bitte keine HTML/CSS Instruktionen!
 
würde das so machen
eine tabelle fields mit name des feldes und eventuell die css klasse die du brauchst
dann eine tabelle die den user und die felder verbindet in die du qauch den wert speicherst.. also solte die user_field tabelle die user_id.. field_id und ein value feld haben..

damit lässt sich sowas abdecken
 
@kling1,

Ja, so grob hatte ich mir das in meinem Kopf schon vorgestellt bzw. schon in einem kleinen Rahmen miteinander angelegt und verknüpft. Mein Problem beginnt ab dem Punkt wo es darum geht das ganze dynamisch ins Frontend zu übergeben. Normalerweise baut man sich ja eine statische Maske, lässt die Inputs mit PHP gegen die Datenbank laufen und ist fertig.

Bei meinem Vorhaben soll ja das ganze Formular dynamisch generiert werden...
 
Je nachdem, wie komplex das Formular ist und wie komplex die Abhängigkeiten zwischen den Feldern sind, könnte man es entweder am Server oder am Client lösen.

Wenn es nur wenige Abhängigkeiten sind, die das dynamische Generieren des Formulars bedingen, so könnte man darüber nachdenken, das Formular in mehrere thematisch gruppierte Einzelformulare aufzuteilen (Wizard). Bei jedem Submit werden Daten zum Server geschickt und anhand dieser Daten kannst du dann entscheiden, welche Formularfelder im nächsten Schritt notwendig sind und diese dynamisch mit ausliefern. Das hat man häufig bei komplexen Bestellformularen, trifft aber auch schnell an seine Grenzen, wenn es mit dem Gruppieren schwierig wird, bspw. wenn das Formular nur 10 Felder hat und man daraus 5 2er-Gruppen bilden müsste, das zwingt dem User unnötige Klickwege auf, etc.

Eine andere Möglichkeit ist Ajax, um abhängig von Aktionen des Users im Hintergrund Daten vom Server zum Client auszuliefern, ohne dass ein Submit und damit ein komplettes Neuladen der Seite notwendig wäre. Ein Beispiel hierfür wäre ein Formular eines Lieferdienstes mit 2 Feldern, im ersten stehen Regionen zur Auswahl und je nachdem, welche der User hier selektiert, werden dann im zweiten Formularfeld italienische, chinesische oder was auch immer für Gerichte angezeigt, da sie erst abhängig von dem onchange-Event im ersten Formularfeld geladen werden.
 
Danke für den Vorschlag. Die Formulare sollen jedoch schon vorher, unabhängig von den User-Eingaben dynamisch generiert werden, und zwar nach der Auswahl die ich selbst vorher definiert habe. Sonst hätte ich es tatsächlich Clientseitig lösen können. Die Ajax Variante bringt mir ja nur etwas, abhängig von den Aktionen des Users das Formular zu generieren. Der Ansatz von kling1 war an sich schon der richtige, aber mein Problem ist eben das, was ich daraufhin im letzten Beitrag geantwortet habe :P
 
Zuletzt bearbeitet:
Zurück
Oben