You've got a few options, but none of them are simple, or easy to articulate. You could do it the refresh way as you mentioned, but that requires you to save all the other data every time a change is made.
You can use JavaScript, but that requires you to store all the values in JavaScript arrays, and if you're not good with
JS, that will be a problem.
Lastly, you could do a combination of both. Create iframes that build select boxes from form parameters. When the first one on the main page is selected (onChange
JS handler) you write some
JS code to capture the value of the select box and save it to hidden variable of a hidden form who's action is to submit to the iframe of the next select box (through the target attribute), and so on down the line until you get to the last select box. The onChange of that last select box will call a
JS function which copies the value back into a hidden variable of the parent form.
Ugly.. all of them are ugly...