Reputation: 2983
Ive been tasked with creating a user input form that has a set of defined fields and the ability for the user to add their own fields on the fly. e.g textbox, select box with options etc etc. Has anyone got any ideas on how i could implement this. What do i need to consider?
Also How would i store the data as i wont know the amount of fields. Generally in past projects a field in the input form has mapped to a column in the database.
Any ideas
Thanks in advance
Upvotes: 0
Views: 340
Reputation: 2064
Do your users log into your site? If so you could use a SQL table to store each users controls e.g. :
UserName ControlID ControlType
JohnSmith 1 TextBox
JohnSmith 2 CheckBox
JoeBlogs 3 TextBox
You can then have another table with each controls value within it:
ControlID Value
1 My Text Value
2 False
3 Hi I’m Joe
You can then just do a simple join to get all the users controls and there values. You can also store information such as location/index of the control on screen. Doing it this way you can add more than one value per control, meaning things like list box's will have multipul rows.
If your not using a log in system you could do the same sort of thing but using Cookies.
Upvotes: 0
Reputation: 17038
It will need to be stored in a denormalised fashion:
So you'll probably need a Questions table which defines the question and maybe the type of input and any contraints.
You'll then have an answers table which is linked to whatever your entity is. The answers table will have an question and an answer field.
Upvotes: 1