How can I find the form ID of a form?
How do I get the form id of my form? I've just begun to make my modules and I'm at a standstill. I got this code from someone else and am trying to customize it:
function hook_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'the form id for the node form') {
$form['#submit'][] = 'my_custom_submit_handler';
}
}
Answers 9
Try printing the form variables with PHP function print_r.
When you visit the page the form is on, the variables (and name) will be displayed.
An easier way of accessing (or rather viewing) the information would be using dpm() function provided by the Devel module. You can use it in the same way you would use print_r.
Finding FORM ID without installing module
Finding the Form ID is very easy no need to install modules and all
STEP 1: Open you from go to its edit page(OR inspect your form).
STEP 2: if its a node form find "node-form" in the inspect element
STEP 3: see attached image the highlighted green text is the ID of the form
STEP 4: IMPORTANT Finally if you want to use it in
hook_form_alter()
replace the hypen with underscoreFor example:
yourform_id_with_content_type_name_form
Like wise you can find id of any form in drupal all you have to do is inspect->find form element and search for the ID attribute and use it
Hope it helps :)
If your webform is located at "www.mydomain.com/node/351" then your form ID will be "webform_client_form_351". So, whatever your nid is - that's your form ID.
If you know where the code is that defines the form you want to alter, look there. The form id is just the name of the function defining that form.
For example, Views defines the function views_ui_edit_view_form on line 875 of views/includes/admin.inc. The Hierarchical Select views filter looks for that form id on line 50 of hierarchical_select/modules/hs_taxonomy_views.module in a hood_form_alter function.
Use
drupal_set_message()
function to display the form id.Use the Get Form ID module to easily find out form id of any form in Drupal.
Here is a quote about it from its project page:
Disclosure: I'm maintainer of these modules.
As the code you reported is looking for the form ID of the node form, there are two cases.
Drupal 6
If the code is trying to alter the form used to set the settings for a content type, then it should use the following IF-statement.
If the code is trying to alter the node edit form, then the code should use the following IF-statement.
Drupal 7 and higher
In the first case, the IF-statement should be the following one:
Using a different approach, supposing that mymodule is the short name of your module, you could use
mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
. Since Drupal 7, all the hooks used to alter the form implemented by another module gets$form_id
as last parameter. See hook_form_alter(), hook_form_FORM_ID_alter(), hook_form_BASE_FORM_ID_alter().In the second case, the IF-statement is the same used for Drupal 6.
First install Devel module.Then create a module like the code below
Then you can see ALL details of a form, like form ID, field names of a form etc.
In Drupal 8 you can get a form id like this. You have to write this code in your
.module
file