Form generation

  1. drupal
    1. 6 includes/form.inc
    2. 7 includes/form.inc
    3. 8 core/includes/form.inc

Functions to enable the processing and display of HTML forms.

Drupal uses these functions to achieve consistency in its form processing and presentation, while simplifying code and reducing the amount of HTML that must be explicitly generated by modules.

The primary function used with forms is drupal_get_form(), which is used for forms presented interactively to a user. Forms can also be built and submitted programmatically without any user input using the drupal_form_submit() function.

drupal_get_form() handles retrieving, processing, and displaying a rendered HTML form for modules automatically.

Here is an example of how to use drupal_get_form() and a form builder function:

$form = drupal_get_form('my_module_example_form');
...
function my_module_example_form($form, &$form_state) {
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
  );
  return $form;
}
function my_module_example_form_validate($form, &$form_state) {
  // Validation logic.
}
function my_module_example_form_submit($form, &$form_state) {
  // Submission logic.
}

Or with any number of additional arguments:

$extra = "extra";
$form = drupal_get_form('my_module_example_form', $extra);
...
function my_module_example_form($form, &$form_state, $extra) {
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => $extra,
  );
  return $form;
}

The $form argument to form-related functions is a structured array containing the elements and properties of the form. For information on the array components and format, and more detailed explanations of the Form API workflow, see the Form API reference and the Form API documentation section. In addition, there is a set of Form API tutorials in the Form Example Tutorial which provide basics all the way up through multistep forms.

In the form builder, validation, submission, and other form functions, $form_state is the primary influence on the processing of the form and is passed by reference to most functions, so they use it to communicate with the form system and each other.

See drupal_build_form() for documentation of $form_state keys.

Functions & methods

NameDescription
date_validateValidates the date type to prevent invalid dates (e.g., February 30, 2006).
drupal_build_formBuilds and processes a form for a given form ID.
drupal_form_submitRetrieves, populates, and processes a form.
drupal_get_formReturns a renderable form array for a given form ID.
drupal_prepare_formPrepares a structured form array.
drupal_process_formProcesses a form submission.
drupal_rebuild_formConstructs a new $form from the information in $form_state.
drupal_redirect_formRedirects the user to a URL after a form has been processed.
drupal_retrieve_formRetrieves the structured array that defines a given form.
drupal_validate_formValidates user-submitted form data in the $form_state array.
form_builderBuilds and processes all elements in the structured form array.
form_clear_errorClears all errors against all form elements made by form_set_error().
form_errorFlags an element as having an error.
form_execute_handlersExecutes custom validation and submission handlers for a given form.
form_get_cacheFetches a form from the cache.
form_get_errorReturns the error message filed against the given form element.
form_get_errorsReturns an associative array of all errors.
form_get_optionsReturns the indexes of a select element's options matching a given key.
form_load_includeEnsures an include file is loaded loaded whenever the form is processed.
form_options_flattenAllows PHP array processing of multiple select options with the same value.
form_pre_render_conditional_form_elementAdds form element theming to an element if its title or description is set.
form_pre_render_fieldsetAdds members of this group as actual elements for rendering.
form_process_actionsProcesses a form actions container element.
form_process_autocompleteAdds autocomplete functionality to elements with a valid #autocomplete_path.
form_process_buttonProcesses a form button element.
form_process_checkboxSets the #checked property of a checkbox element.
form_process_checkboxesProcesses a checkboxes form element.
form_process_containerProcesses a container element.
form_process_dateExpands a date element into year, month, and day select elements.
form_process_fieldsetArranges fieldsets into groups.
form_process_machine_nameProcesses a machine-readable name form element.
form_process_password_confirmExpand a password_confirm field into two text boxes.
form_process_pattern#process callback for #pattern form element property.
form_process_radiosExpands a radios element into individual radio elements.
form_process_selectProcesses a select list form element.
form_process_tableselectCreates checkbox or radio elements to populate a tableselect table.
form_process_vertical_tabsCreates a group formatted as vertical tabs.
form_process_weightExpands a weight element into a select element.
form_select_optionsConverts a select form element's options array into HTML.
form_set_cacheStores a form in the cache.
form_set_errorFiles an error against a form element.
form_set_valueChanges submitted form values during form validation.
form_state_defaultsRetrieves default values for the $form_state array.
form_state_keys_no_cacheReturns an array of $form_state keys that shouldn't be cached.
form_state_values_cleanRemoves internal Form API elements and buttons from submitted form values.
form_type_checkboxes_valueDetermines the value for a checkboxes form element.
form_type_checkbox_valueDetermines the value for a checkbox form element.
form_type_image_button_valueDetermines the value for an image button form element.
form_type_password_confirm_valueDetermines the value for a password_confirm form element.
form_type_radios_valueForm value callback: Determines the value for a #type radios form element.
form_type_range_valueDetermines the value for a range element.
form_type_select_valueDetermines the value for a select form element.
form_type_tableselect_valueDetermines the value for a tableselect form element.
form_type_textfield_valueDetermines the value for a textfield form element.
form_type_token_valueDetermines the value for form's token value.
form_validate_emailForm element validation handler for #type 'email'.
form_validate_machine_nameForm element validation handler for machine_name elements.
form_validate_numberForm element validation handler for #type 'number'.
form_validate_pattern#element_validate callback for #pattern form element property.
form_validate_urlForm element validation handler for #type 'url'.
map_monthRenders a month name for display.
password_confirm_validateValidates a password_confirm element.
theme_buttonReturns HTML for a button form element.
theme_checkboxReturns HTML for a checkbox form element.
theme_checkboxesReturns HTML for a set of checkbox form elements.
theme_containerReturns HTML to wrap child elements in a container.
theme_dateReturns HTML for a date selection form element.
theme_emailReturns HTML for an email form element.
theme_fieldsetReturns HTML for a fieldset form element and its children.
theme_fileReturns HTML for a file upload form element.
theme_formReturns HTML for a form.
theme_form_elementReturns HTML for a form element.
theme_form_element_labelReturns HTML for a form element label and required marker.
theme_form_required_markerReturns HTML for a marker for required form elements.
theme_hiddenReturns HTML for a hidden form element.
theme_image_buttonReturns HTML for an image button form element.
theme_numberReturns HTML for a number form element.
theme_passwordReturns HTML for a password form element.
theme_radioReturns HTML for a radio button form element.
theme_radiosReturns HTML for a set of radio button form elements.
theme_rangeReturns HTML for a range form element.
theme_searchReturns HTML for a search form element.
theme_selectReturns HTML for a select form element.
theme_submitReturns HTML for a submit button form element.
theme_tableselectReturns HTML for a table with radio buttons or checkboxes.
theme_telReturns HTML for a tel form element.
theme_textareaReturns HTML for a textarea form element.
theme_textfieldReturns HTML for a textfield form element.
theme_urlReturns HTML for a url form element.
theme_vertical_tabsReturns HTML for an element's children fieldsets as vertical tabs.
weight_valueSets the value for a weight element, with zero as a default.
_form_builder_handle_input_elementAdds the #name and #value properties of an input element before rendering.
_form_button_was_clickedDetermines if a given button triggered the form submission.
_form_element_triggered_scripted_submissionDetects if an element triggered the form submission via Ajax.
_form_options_flattenIterates over an array and returns a flat array with duplicate keys removed.
_form_set_classSets a form element's class attribute.
_form_validatePerforms validation on form elements.

File

core/includes/form.inc, line 27
Functions for form and batch generation and processing.

Login or register to post comments