Create a Multi-Page Form

by Steve McMahon last modified Dec 30, 2008 05:50 PM
You can create a multi-page form as a chain of form folders.

Creating a multi-page form is probably much simpler than you might suppose. You may do it by just creating a sequence of form folders that each link to the next.

The basic procedure is:
  • Create your sequence of form folders, typically all in the same normal Plone folder;
  • On all but the last form folder, turn off all action adapters and set the Custom Success Action override to "traverse_to:string:id-of-next-form-folder";
  • On all but the last form folder, set the Submit Button Label to something like "Next" and turn off the cancel button.
  • On all but the first form folder, set the Exclude From Navigation flag in the properties tab;
  • In each form folder, create a set of hidden form fields matching all the fields in all the previous forms;
  • In the last form, turn on your real action adapter(s).
As your user moves from form page to page, input will be automatically saved in the hidden fields of subsequent pages.

A Note on Hidden Fields: The hidden flag is not available for all form field types, but you don't need it. String, Text and Lines fields are adequate to carry all the basic data. Use a hidden Lines field to hold multiple selection field input, string or text for the rest.