[PHP/MySQL] complexe Forms uit database genereren

Pagina: 1
Acties:

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025
Ik zit al een tijdje met een nieuw 'projectje' in mn kop.

Ik heb op m'n site een aantal zwaar ingewikkelde forms staan, die nu gewoon vanuit .inc's ingelezen worden

( http://www.nvlf.nl/act.nvlf bijvoorbeeld )

Aangezien het nogal een pokkewerk is om dit soort tabellen + form inhoud te kloppen, leek het mij een goed idee om dit voor eens en altijd te gaan automagiseren.

De validatie van deze forms is op zich geen probleem. (zie hier )

Maar dan het genereren...

Het makkelijkste lijkt me om 1 (grote) form in 1 tabel in de db te zetten, met dan een aantal kolommen:

naam
caption
type
class
width
height
etc.

zodat je iig deze af kan lopen met een loopje.

maar wat dan als je bijv. zo'n formpje wil genereren? Dan moet er zowat nog een hele scripting taal bij die de layout van de tabel opmaakt, en dat is weer niet echt gebruikersvriendelijk
(uiteindelijk is het de bedoeling dat m'n gebruikers zelf in de cms een formulier kunnen opbouwen waarvan de resultaten gemaild worden)

Iemand hints, tips, suggesties?

ja, ik weet het, de javascript van deze is niet helemaal bugvrij

Stop uploading passwords to Github!


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:51

mulder

ik spuug op het trottoir

Waarom class? Width & height niet nodig, afhankelijk van type maken of evt maxlength dbfield. Veldje required lijkt me handig. Van die radio + textfields een type maken. Het ligt ook natuurlijk aan de gebruikers (=degene die de formpjes moeten maken) hoeveel mogelijkheden je gaat toevoegen. Je moet richtlijnen opstellen, en de gebruiker beperken (=beschermen tegen zichzelf)

oogjes open, snaveltjes dicht


  • HGM
  • Registratie: April 2000
  • Niet online

HGM

Op vrijdag 05 april 2002 15:58 schreef papa_eend het volgende:
ja, ik weet het, de javascript van deze is niet helemaal bugvrij
Mm, ik weet niet wat de doelgroep van de site is, maar ik zit hier nu toevallig in NS te werken, maar daar is het één grote bende.

[/ot]

  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
Je kunt het misschien de vorm en inhoud nog meer loskoppelen. De class, width, height etc zijn dingen die je dan gewoon in stylesheets e.d. kan definieren.

Je hebt dan bijvoorbeeld een tabel
code:
1
2
3
4
5
6
7
8
9
10
11
12
id Caption         Naam      Type          Categorie    Parent PagID Volgorde
1  Naam instelling/ui..  bureau    text1          algemeen      2     1000
2  Werkadres         werkadres  text1         algemeen      2     1050
3  Postcode       postcode   postcode        algemeen       2     1100
4  Telefoonnummer     telefoon   telefoon        algemeen       2     1150
5  Werkzaam sinds     werkstart maandjaar       algemeen        2     1200
6  Algemeen Ziekenhui..  algziekenhuis  werkterrein_multi  werkterrein     2     2000
7  Academisch Ziekenh..  acadziekenhuis werkterrein_multi  werkterrein     2     2050
8  Verpleeghuis              werkterrein_multi  werkterrein  self   2     2100
9  Somatisch         vph_somatisch  werkterrein_multi  werkterrein  8   2     2110
9  Psychogeratisch   vph_psychog... werkterrein_multi  werkterrein  8   2     2120
10 beide             vph_beide  werkterrein_multi  werkterrein  8   2     2130

De consequenties voor het opbouwen van je formulier en de wijze van opslaan in je database haal je dan uit "Type". Het type "postcode" kan betekenen dat je een tabelrow schrijft met een enkele INPUT TYPE=text met een MAXLENGTH van 6. Een type "werkterrein_multi" schrijft een tabel-row met een INPUT TYPE=radio (name = categorie of zo) en eventuele gewenste subvelden, met alle benodigde javascript-code van dien.

Voordeel van zoiets als dit is dat je toch redelijk complexe samengestelde vragen kan maken terwijl je niet de hele database er van site tot site op hoeft aan te passen. De consequenties van de verschillende "Types" bouw je alsnog in in je custom code per site. Een dropdown in werkterrein geef je bijvoorbeeld als type "werkterrein_dropdown" mee en via een gewone PHP-function achterhaal de de children daarvan vanuit de tabel en bouw je de dropdown op.

Zomaar een eerste opzetje hoor, ik zal in de snelligheid ongetwijfeld een stel haken en ogen hebben gemist en naar normalisatie zal ook nog wel moeten worden gekeken, maar dit is de richting waarin ik dan denk. Over de hoeveelheid werk die het kost om dit gebruiksvriendelijk in een CMS te verwerken zal ik het maar niet hebben :)

Ik spoor veilig of ik spoor niet.


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025
Op vrijdag 05 april 2002 16:23 schreef HGM het volgende:

[..]

Mm, ik weet niet wat de doelgroep van de site is, maar ik zit hier nu toevallig in NS te werken, maar daar is het één grote bende.

[/ot]
i know, i know...
dat is dus één van de redenen waarom ik het opnieuw wil doen, en dan gelijk goed.

In principe moeten alle typen form elementen aangemaakt kunnen worden, van checkbox tot textarea, en ik wil dit niet specifiek voor deze site schrijven, maar ook zodat een ander er evt. ook nog wat aan heeft. :)

Stop uploading passwords to Github!


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025
Op vrijdag 05 april 2002 16:27 schreef Anders een mooi verhaaltje
Woei, da's wel een idee inderdaad!

* SchizoDuckie gaat in de trein strax maar eens even rommelen met een eerste opzetje in deze richting. *D

Stop uploading passwords to Github!

Pagina: 1