I may not be understanding your needs correctly, but I recently did this: 1. The form builder function switches based on some piece of info in $form_state.
2. If the info is there, present information. If the information is not there, present a form. 3. The submit function contains onlly $form_state['rebuild'] = TRUE. Basically you're giving the form builder function two ways to build the page: With data and without it. -Randy On Mon, May 10, 2010 at 10:37 AM, Bayne, Sam <[email protected]> wrote: > I'm quite frustrated with the Form API right now, so please forgive my > tone. > > I've got a form that has a bunch of inputs, all of them multiselects, that > allow the user to choose what classes to see in our schedule. > (our class schedule is in an external database). I've got a bunch of code > in the form_submit function that builds a very elaborate sql query to get > the list of requested classes. > > Unfortunately, the form_submit function is not actually permitted to > display anything except through drupal_set_message(). > > So I have to either pass my complicated sql query, or all the contents of > the form fields to some other page through $form_state['redirect']. > > How do I do that without shoving it all into the querystring? > > Right now, I'm looking at the performance issues of: > > A: storing the query as a string in the database with a query_id, then > sending a query_id in the redirect, > B: storing the result of the query in the database with a result_id, then > sending a result_id in the redirect. > > Is there some other way to accomplish what I want? > > p.s. I've looked at the search module, it basically shoves the form input > into the querystring of the redirect. That'll work for a single input, but > multiple array inputs will be a huge pain. > > > -- Randy Fay Drupal Module and Site Development [email protected] +1 970.462.7450
