Hey @Dan_A ,
welcome to the community
Yes, there are several ways with different up- and downsides.
Here are three that I’d come up with:
Using a form
The most obvious is using the form feature instead of a table.
- Copy and paste your table to get a view of your table.
- Then in the table options, you can select ‘Form’ as your type and voila, you have a form with a submit button.
Using a dummy button
Another way is to add a button that imitates a submission. This helps a user to understand the user journey and can even close the modal. But it has a downside: Sometimes a user will start to fill out WITHOUT submitting anyway. So you will have a lot of half-filled rows. But also there is a little workaround, so you can check which is submitted data and which is not.
- Add two columns: A button ‘Submit’ and a checkbox ‘isSubmitted’.
- The submit button will run two actions: change the isSubmitted column to true AND close the modal. You can use the formula ‘runactions’ to run two actions at once.
- To close the modal, you need to use a little trick: You have to actually “Open” the window with openWindow() where you want the user to land at without the modal. To make this without a reload, you just have to add the desired page URL Id, instead of a real URL. You can find it in the address bar after your page name. It will start with ‘_su’. In my case:
https://coda.io/d/Community-Examples_d64iZZh9gx8/Submit-with-Dummy-Button_su4f0#Submit-with-Dummy-Button_tuJQB it is
Make an AddSubmission Button to open the modal:
To get rid of the half-filled rows, you can now create an automation that runs e.g. daily in the night, when no one is filling out stuff.
Using a second table to cache pre-submitted data
A third way is to create a second table, that ‘caches’ your data. It is almost like the second way, but you don’t mix up pre-filled and after-submit data in one table.
- Create a second ‘helper’ table with the same fields. I used ‘HLP’ in the names to better differenciate though.
- Make the AddSubmission button now open a new row in the helper table.
- When people fill it out, it will ‘cache’ the data there.
- Set the submit button on this second table now to create a new row in the original table. Now you only have clean data in your original table and real working submit button.
- Again, an automation can delete the cached data e.g. every day in your helper table.
Hope something of that will work for your use case