I am building a large form for an inspection survey and this form has over 100 inputs in different sections. I have been building the form input by input but as I work with Bubble for longer I am realizing that maybe this would be better done in a repeating group. The issue I have is that for each question the input might be different, some are text inputs, some are dates and a few are dropdown or multi-select. Does anyone know a way of setting this up where the input would follow whatever the database type is for a specific field? So let’s say row 1 in the repeating group is a single line text input whereas row 2 the input would be a dropdown?
Hi there, George… this suggestion may not be the best way to go about it, but it would work, so I didn’t think it could hurt to throw it out there.
I’m pretty sure you can’t tie a conditional to a field’s type, but you could add a custom field to the data type that defines what kind of input is required for each question. Then, you could add each of the possible elements to row 1 of the repeating group (make them not visible on page load), and you can show the appropriate element (i.e., make it visible) in each row based on a conditional that keys off of the aforementioned custom field.
Anyway, just food for thought, but maybe it can help you get down a path.
Hi @mikeloc, thank you for your suggestion! I thought about trying that out but then realized it would be tricky on the workflow side of things. When mapping the input to my “make changes to thing” action I have no clue how to choose only the element that is visible.
Ah, right… I was just focused on the elements and didn’t even think about the workflow. I’m guessing we could come up with something, but it would probably get way too convoluted/hacky in a blink!
IMHO, I wouldn’t use a repeating group unless absolutely necessary because it adds a lot of complexity if you are trying to make calculations and save data back to the database.
Database
Thing 1: Form (fields > title-text)
Thing 2: Entry (fields > form-form, title-text)
Thing 3: Field (fields > entry-entry, title-text, value-… varies depending on the input element)
UI
Repeating group with one long vertical cell accomodating the different inputs needed (all hidden but made visible upon conditions) … datepicker, input, multiline input, file uploader for images
Logic
The key to this setup is to create a dynamic form builder which will use a templated form entry with fields for each form that you want to have. Inspections entries will be copied (thus created) everytime a new actual inspection entry will be created. All visible inputs should bind their data to the dB … this way you avoid the need for complex logic