Hey all, Have any of you handled very complex, multi-page forms before?
I am setting up a form, it is 4 pages long. The first two pages are very simple, and the remaining two are rather complex. For example, pages 3 and 4 both have default rows that are always present, that may or may not have data filled in (each row contains 6 textfields for 6 years worth of data). And on top of that there is an option for the user to add non-standard rows based on a DDLB (so, dynamically add rows to the page - and again 6 text fields per row added). If the above wasn't enough, on page 4 the user can select to add another series of data for pages 3 and 4 and will go back to a blank page 3 and can repeats pages 3 and 4 as many times as needed to enter all the data. The structure of this beast is unbelievable. I currently am using 4 arrays (one per page). the page 1 and 2 arrays are 1d..not bad... The page 3 and 4 arrays can get up to 4 dimensions as it is now. To give you an idea on page 3: //non-dynamic row $wizpage3[operation][rowname][year]=data //dynamic row $wizpage3[operation][dynamic_rowname][row_num][year]=data And when you stuff, all those into the session array the dynamic rows makes it 5 dimensions...sheesh... I DO have the data storing in the arrays just fine for as many times as the user needs to enter pages 3 and 4. Originally I was planning on storing the arrays in the page itself as hidden fields, but it quickly became obvious that the page would be huge with all the hidden fields if a user entered pages 3 and 4 a bunch of times). So I am using a session variable to store the arrays. The problem with sessions is if the user hits the next/prev buttons in their browser(not the ones I coded into the page)... you get page expired errors, which I really don't like... All of the data entry is actually the same dsp_ page with if statements to control which page is displayed. I have in-form nav buttons (next/prev) to move back and forward in the wizard interface. I guess I am more curious as to how other people would handle something this complex. I have been wracking my brain as to whether or not I have gone down the wrong path with this, or could have made it simpler, but it works... The more I code, the more I worry about how unwieldy this could become... Maybe I am venting more than anything... heh... its friday...weee :) Cheers, Keith. ==^================================================================ This email was sent to: [email protected] EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrFMa.bV0Kx9 Or send an email to: [EMAIL PROTECTED] T O P I C A -- Register now to manage your mail! http://www.topica.com/partner/tag02/register ==^================================================================
