header photo

via positiva

A relatively simple overview of drupal_get_form()

A quick stab at a flowchart of the drupal_get_form() function. There are lots of subtleties that this glosses over, but it captures the overall progression.

drupal_get_form.png

Missing Y/N

Thanks for the diagram. I think the Y/N choices are missing, though.

I tried to add them: you can recover the modified file from [[http://blog.riff.org/files/drupal_get_form.png]], and remove this comment afterwards (but check whether they are in the proper places !).

Updated -- thanks!

Yep, I realized I'd left ouy the y/n notations after posting it, but hadn't had a chance to update it.

A modified version of the chart should be hitting the Drupal.org handbook soon.

Using Drupal_get_form to return data?

I don't understand why the only options are to return the original form or do a redirect. How does one return data retrieved from a form query (i.e., use a form to do a search on content and return the results)?

For example, given a form that calls the following _submit function, how does one display the returned data?

function listing_basic_form_submit($form_id,$form_values) {
db_set_active('housing');
$city = $form_values['basic']['city'];
$low = $form_values['basic']['low'];
$high = $form_values['basic']['high'];
$sql_cnt = "SELECT COUNT(DISTINCT(id)) from residential where city='$city' AND low=$low AND high=$high";
$result = pager_query(db_rewrite_sql("SELECT id,city,ListPrice,area from residential where city='$city' AND low=$low AND high=$high"), 5,0,$sql_cnt);
db_set_active('default');
return $result;
}

#multistep

This is were the #multistep mode for drupal's form handling comes in. To do what you're looking for, you would want to turn it into a #multistep form, turn #redirect off, and put the display of the search results into the form handling code itself. Check out this article on Lullabot.com for a very simple example.

Thanks

Hey, that was really helpful. Thank you. Am I wrong in thinking that this was more difficult to do in DP 4.7 and earlier versions?

Nope, you're correct

Am I wrong in thinking that this was more difficult to do in DP 4.7 and earlier versions?

It was indeed more difficult. It's certainly far from perfect now, but we're making iterative improvements...

Previous comment roughly

Previous comment roughly translates as "Is your hovercraft full of eels?"

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <img> <i> <b> <strike> <h3> <h4>
  • Lines and paragraphs break automatically.
  • You may use [inline:xx] tags to display uploaded files or images inline.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Twitter-style @usersnames are linked to their Twitter account pages.
  • Twitter-style #hashtags are linked to search.twitter.com.

More information about formatting options

Miniblog

  • Pondering the #d7ux questions. Wondering who groks the difference between 'choice of options' and 'flexibility in a tool' 18 hours ago
  • Fireworks are popping all over the neighborhood. Joe the cat is huddled, and growling. Nice to know he's got our backs. 18 hours ago
  • Someone has to -- it might as well be me. http://is.gd/1mIDk #palin 22 hours ago
  • Had brunch, wandered the park, got cupcakes, rescued half a dozen ducklings trapped in a sewer. I feel like Mr. Rogers. 1 day ago
  • Was skeptical about #drupal 7's new code registry, but by golly it DOES make maintaining my big modules easier. 2 days ago