Need to create a multi-part form. How to do this with Express objects?

Permalink
I need to create a very long questionnaire form and would like to break it up into 3 or 4 displays with the guest selecting a next button at the bottom of each segment of the form and have a single form when it is all done. I want to do this so the the guest doesn't get discouraged with it's length. I am sure that I should be able to manage this with using Express Objects. Because Express Objects is a brand new concept to me with concrete5, I am not sure how to proceed with this, or will I end up coding this myself? I am open to any and all suggestions that you may have.

ThomasJ
View Replies:
mnakalay replied on at Permalink Reply
mnakalay
Concrete5 offers 2 form blocks for use on the front-end: the legacy form block and the Express form block.

The Express form block is the most powerful one but also the hardest to work with.

If you look at the Express form block's view you will see that the whole form is rendered elsewhere using
echo $renderer->render();

That means that if you want any control over how the form fields are displayed, you have to go into overriding core classes and in this case, it's not an easy task.

Also, if there are any errors in the form on submission (a required field is empty, an email address is wrong) the page will reload and indicate there's an error but you won't get any information from the error message to tell you in which "step" your faulty input is so you can take the user to the right one.

The legacy form, on the other hand, is much less powerful but also much more straightforward and easier to template and do what you want with.

No matter which you choose, though, you will have to code most of it and use some out-of-the-box thinking to solve problems.
ThomasJ replied on at Permalink Reply
ThomasJ
Thanks. I was hoping that I might use Express objects to create the form segments and concatenating the 3 form objects and having the one stored object in the database. I was hoping not to have to invent the wheel all over again, especially with how much work went into creating Express objects. I have used the legacy form block before and found it inadequate for all but the simplest form.
mnakalay replied on at Permalink Reply
mnakalay
You might want to try the package Formidable from the marketplace. Even the light version is pretty powerful with plenty of options and as easy to template as the legacy form