سؤال

I have a web form with name and email fields. when the form is submitted the name and email should store in database and an PDF file should start download.

my question is how to override the submit function of the web form so that i can add that extra function after that?

هل كانت مفيدة؟

المحلول

You will need to create a custom module with hook_form_alter() implementation.

function [YOUR_MODULE]_form_alter(&$form, &$form_state, $form_id)
{
    if($form_id == "YOUR_FORM_ID")
    {
        // target the submit button and add a new submission callback routine to the form
        $form['#submit'][] = 'YOUR_SUBMISSION_CALLBACK_FUNCTION';
    }
}

The code above will execute your new callback function YOUR_SUBMISSION_CALLBACK_FUNCTION AFTER the form's default callback function.

To make your new callback function called BEFORE the form's default callback function, use the following code instead of the giving above:

array_unshift($form['#submit'], 'YOUR_SUBMISSION_CALLBACK_FUNCTION');

To cancel the form's default callback function and force it to use your function ONLY, use the code below

$form['#submit'] = array('YOUR_SUBMISSION_CALLBACK_FUNCTION');

Hope this help.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top