Multiple inputs into one database listing?

This question has been asked a couple of times but without any clear or definitive answer, so I think it will be useful for us to resolve this.

My users can create groups, such as a tennis group or a reading group. They will input several pieces of information, such as Group-name, Group-description, Group-date etc.

I’d like to split the input form to one question per page (for better user experience), but each input goes onto a different line in the database.

Here I ask for their group name:
step1

and then the group photo:
step2

But the database treats this as two unique users, one with a group name, and the other with a photo!

Hi there, @darren.james7518… you are creating a new thing in both of those screenshots (i.e., workflows), so that’s why you are getting two items in the data type. After you create a new thing in the first workflow, any subsequent workflow should make changes to that thing instead of creating a new one. Make sense?

Best…
Mike

1 Like

Set you page data type to be “Group” then you can pass the Group from page to page and update it (as mentioned above).

However…page loads are not all that quick.

This does make sense and is what the other posts concluded … the only issue is ‘how’ do we make changes to that thing?

Which action do I choose from this list so that I can add photo upload to the same user?

You would choose the Make changes to thing… action, and that action will ask you what thing you want to make changes to. That’s where Nigel’s response comes in… you can use his suggestion to define the thing to make changes to.

As Nigel mentioned, though, page loads are not particularly quick. You could achieve the same user experience by keeping everything on the same page and showing/hiding groups, so that’s something you might want to consider.

When I choose the Make changes to thing… action, I can choose User but then I have no option to choose to add a photo. Effectively, I don’t want to change the users data, I want to add to it.

You mentioned that I could achieve the same user experience by keeping everything on the same page and showing/hiding groups, which sounds interesting. But, is that even more difficult to achieve for a newby like me?!

Just found out that it won’t work because Make changes to thing… action modifies an existing entry in the application database. For example, if a user updates their first name, but I am adding a photo to an existing database. If the thing being changed, e.g., the ‘Current user’s thing,’ does not exist, the thing will be created, but it will not be associated with the current user.

Is anyone able to help me with very, very clear steps? I’ve spent 6 hours on this one thing and I’m so stressed. Why does every software make working with databases so unintuitive? Here’s how I would do it…

Add ‘photo’ to ‘this database’ and put in in ‘this line in the database’.

From what you’ve described so far, it’s the Group datatype (not the User datatype) that you want to make changes to.

I would agree with what the others have said in that keeping the whole process on a single page is a much better way to go - it will be simpler to create and change the Group, and much better/faster UX for your users.

There are basically 2 primary ways to to what you want to do on a single page:

  1. Create the new Group in the first part of your form, then make changes to that group in all subsequent steps.

  2. Just create the Group once you’ve collected all the information you need in all the steps of the form.

Personally, I would probably opt for the second option, to keep things simple, although either option should work if you’re keeping the whole thing on a single page (if not then you’ll need to use the first option).

If you decide on option 1, here is a basic outline of the process:

  1. One of the parent groups on the page should have as it’s content type Group, with no defined datasource to start with.

  2. Once the first stage of the form is complete, and a button is clicked to move to the next stage, use a workflow action to create a new Group, with the data from the first part of the form. Then, in the same workflow, use the element action ‘Display Data’, to set the datasource of the parent group to be the newly created group - i.e. the results of step 1.

  3. Then, in all subsequent workflow steps, you just need to use ‘make changes to a thing’ and refer to the parent group’s Group as the thing to change.

You can use the exact same method if you decide to use multiple pages, but you’ll need to send the newly created Group data to each subsequent page (as mentioned in a previous post, you’ll need to set the content type of those pages to be Group).

Alternatively, you can just leave all the input data in the inputs, and use a single workflow action at the end of the final stage form to create the new Group, and all all the data from all the inputs, then reset the inputs ready for the next new Group.

There are always multiple ways to do things in Bubble, so there are probably even more than I’ve mentioned here but, as I said, personally, for simplicity, I’d probably just use a single workflow action to create the group at the end of the whole process - but it really depends on your specific use case and desired UI/UX as to which approach would be best for your app.

1 Like

I really appreciate your help, I can see you took time writing that as clear as possible. I really would like to have multiple pages, even though it may be slower. However, I think I may not have the brain power for this. I am a newby, but I should be able to understand some of what you say, but I don’t.

EDIT: After reading several times I see that you’re mainly offering help in how to keep to one page. You do offer advice on multiple page submission;

You can use the exact same method if you decide to use multiple pages, but you’ll need to send the newly created Group data to each subsequent page (as mentioned in a previous post, you’ll need to set the content type of those pages to be Group).

send the newly created Group data to each subsequent page

I don’t understand this. I understand the words but not which buttons to click to make that happen.

On page one I ask the user to create a “group name”. User inputs and clicks Next …

On page two I ask for a photo.

That’s it.

Is there anyway you could tell me step by step what buttons to click to make this add to a single line in the database?

Ok, so again, there are multiple ways to do this, but here’s the simplest way if you insist on using 2 separate pages…

  1. Firstly, make sure that your second page has a content type of Group

The first page doesn’t need a content type defined.

  1. On page 1, run a workflow to create a new Group, and set the Name field to the name input’s value

image

  1. Then, in the same workflow, use a navigation action to send the user to the second page, and send the Group that was created in step one:

image

  1. Finally, on the second page, once the photo has been uploaded, simply make changes to the pages Group (the one you created on the previous page and sent to this one), and set the Photo field to be the pictureuploader’s value:

image

That’s all there is to it…

Although I would reiterate that using 2 separate pages to do that seems a rather clumsy, slow, and unnecessary way to achieve a very simple thing that could much easier, more efficiently, and more elegantly be done on a single page, but it all depends on the UX you’re looking for and the specifics of your app.

In either case though the process is basically the same, as outlined above.

1 Like

@ adamhholmes thank you so much, it worked!

I can identify some reasons that I struggled. Firstly, when I click on a workflow element, only 50% of the time does the dark grey inspector show up (very strange). This left me blind a few times. Also, when selecting options within the dark grey inspector, if text is orange I assumed it was not ‘finished’ and that I needed to select more things. That is bad UI, it should be green or red in my opinion.

The main breakthrough which you have given me is that we can send data from step 1 over to step 2 - this is what I was missing.

Anyway, you’ve helped me a lot and although it’s midnight, I may be able to sleep better thanks to you giving me some of your time and expertise. Thank you!

1 Like