From: "Hauck, William B." <William.Hauck@ibx.com>
I'm working on the project request section of our new project tracking
system. The request form is broken up into 12 pages-yes, lots and lots of
data to be submitted.
Anyone have any experience / advice on how to handle that many fields?
Should I use a single subroutine to handle it all based on a "page"
variable? Or, should I simply have a subroutine per page? How about going
back to correct something the user messed up during initial entry-we want to
show a summary of the data before final submission.
Any help is appreciated.
I think the best approach is to create an action for each "page" of the form
and after each form submission partially update one or more database tables,
saving a marker that shows which was the last page completed.
And after each form submission, depending on some options chosen by the user
you can redirect to the next form or to display a certain form which is
displayed only in some conditions.
After the user submitted the first form, in which you may ask him/her for
his/her email, you can automaticly send him/her an email with a link that
can be used to access this "wizard" where he/her left it, maybe even from
This way, it is not a problem if the user's computer has frozen after he/she
completed 99% of the wizard or he/she should continue only after a certain
You can also put "previous links in every page that would display the
previous filled form, pre-filled with the values this user already filled
(which are taken from the database).
For creating the forms you can use a tool like HTML::FormFu or
manually-created forms... it doesn't matter.