 
Crew algemeen |
|
Ik heb er ook eens aan zitten denken om zoiets te maken. 
Je moet een beetje een grens trekken tussen template (layout) en formulier. Je kan wel alles opslaan in de database maar dan moet je alles wel weer op de goede plek zien te krijgen. Als je een goede stylesheet maakt voor de opmaak hoef je dat niet erbij op te slaan in de database.
Als je het gelijk in een database wilt zetten moet je ook valideren en een query parsen.
Ik zou zoiets doen:
Tabel "forms":
- id (Uniek nummer)
- name (Formulier naam)
- method (Post of Get)
Tabel "form_elements":
- id (Uniek nummer)
- form_id (Verwijzing formulier)
- name (Naam van de variabele)
- type (Dropdown / Radio / Text / Hidden)
- value (Waarde)
- order (Volgorde)
- validate_pattern
Tabel "form_elements_options":
- id (Uniek nummer)
- form_element_id (Verwijzing formulier element)
- value (Waarde)
- order (Volgorde)
Die laatste tabel zou dan zijn voor dropdown lijsten, radio buttons, checkboxen. Steeds order kan je dan de volgorde veranderen. Bij "validate_pattern" lijkt me wel gaaf als je dan in je script een lijst met 20 verschillende validatie patronen hebt, bijv.; email, url, nummeriek enz.. En dan kun je gewoon in de db zeggen waar hij aan moet voldoen. 
Als je alle informatie uit de tabellen hebt gehaald heb je iets van een multidimensionale array die je dan in een templateparser oid kan parsen.
Natuurlijk kan (en moet) hier nog vanalles bij: sql query dynamisch maken. Fout meldingen als de ingevulde waarde niet valid is. (Dat zou met weer een extra tabel kunnen.) Bij een uploadveld automatisch een 'enctype="multipart/form-data"' toevoegen. En meer van zulk soort dingen.
Ik moet zeggen, het is een beetje overweldigend zo, steeds weer zijwegen waar je ook nog iets aan moet scripten, maar het lijkt me wel vet als je zo makkelijk je formulieren kan organizen! 
Als ik een keer veel tijd heb ga ik dit misschien wel een keer uitwerken! |