Clean dynamically generated forms... is there a way?

I'm trying to write a UI for a reports view that has (lets say) the
following reports:

1. Company overview
2. Person detail
3. Projects overview

The idea is that you choose which one of those reports you want using
a SELECT box. When you've chosen the report you want the options (if
there are any) for that report are displayed. So let's say we have the
following options:

1. Company overview
This just displays the report which lets say is a partial that we put
in a span. Easy.

2. Person detail
For this we want a new SELECT to appear with all the possible projects
in (lets say), then when that is selected we display the result in a

3. Projects overview
Here we want a SELECT box and a checkbox they do ... something (what
they do is irrelevant). On changing them though we update the div with
the displayed report using those options.

I already have a solution for this that is really big and unwieldy and
... wrong... It uses AJAX because I came across it and thought it was
shiny. This has the problem though that if you use a link on the
report and then go back you only get the first select box appearing.
Basically back button doesn't quite work badness. So an AJAXy solution
would be nice, but I really want the back button to work.

The second issue is that my current solution has reams and reams of
code. About 30 lines per potential report which is clearly not

So I'm wondering if anyone can tell me where to RTFM or point out
anything I should look at or consider, or not consider :slight_smile: Any help
appreciated :slight_smile:


It would seem to me that the three reports you require could be
rendered as separate actions (each belonging to it's model/controller.
with it's own view' ie. build each report page first. And then the
main select box 'menu' would be a call to an action in the controller
that would do a redirect_to the appropriate page.

Perhaps there is a reason you do not choose to do it this way