One way to do it would be :
in reply to "Dynamic" HTML Forms, Tracking Data and Trepidation
Design the form so that along with the Contact Information and Billing Information , you have , say, 3 input fields for Requests (say Request1, Request2 and Request3)...keep a submit button after that which says "Add more Requests". (Keep in mind that this submit button is in addition to the default submit button which says "Finished Adding Reuests" or something to that effect )
Now, when the user presses the "Add more Requests" button, the form should save into the database all the information that the user has added so far , and after the data is saved, the form should be loaded again displaying all the saved data in an editable format,ALONG with 1 additional input box for the additional request that the user wants to make...this process can continue till the user presses the "Finished Adding Reuests" button, which ends the process...
The advantage of this approach is that the user can not only add more requests, but he/she can edit the information previously added and update that information...
you'll have to write a function which checks whether you need to fire an "UPDATE" SQL statement or an "INSERT" statment... shouldnt be too hard since u can make those checks using the primary keys of the data already entered..
hope this helps :)