[development] How to pass form values to page that actually does something.

Michael Prasuhn mike at mikeyp.net
Mon May 10 16:53:29 UTC 2010


Add the display bits to your form builder function, and pass the data back with $form_state['storage'] or something like that. This is a basic multi-step form. There are a few examples in Drupal 6 core of this, or just google for "drupal 6 multistep form."

-Mike
__________________
Michael Prasuhn
mike at mikeyp.net
http://mikeyp.net

On May 10, 2010, at 9:37 AM, Bayne, Sam 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.
> 
> 



More information about the development mailing list