[development] Form with multiple submit buttons

Steven Jones steven.jones at computerminds.co.uk
Tue Oct 6 21:06:22 UTC 2009


When the browser posts the form back to the web server it only sends
the value of the form elements against their respective names. That
is, the following input

<input type="sometype" value="value" id="some-id" name="some-name" />

would be posted back to the server as
some-name = value.

Since buttons are also posted back in the same way there is not way
for Drupal know which button was pressed if they share the same name
and value.

Steven Jones
ComputerMinds ltd - Perfect Drupal Websites

Phone : 024 7666 7277
Mobile : 07702 131 576
Twitter : darthsteven

2009/10/6 nitin gupta <nitingupta.iitg at gmail.com>:
> Hello,
> I am having two form submit buttons on a single page, somethings like this:
> $form['submit1'] = array(
>     '#type' => 'submit',
>     '#value' => t('save'),
>     '#submit' => array('test_submit1'),
>   );
> [some more for elements in between]
>   $form['submit2'] = array(
>     '#type' => 'submit',
>     '#value' => t('Save'),
>     '#submit' => array('test_submit2'),
>   );
> Now, whether I click on any of them, the submit callback of second button is
> called always. But if I change the value of second button or give them
> different '#name', everything gets back in place. They call their submit
> functions respectively.
> I did not expect such a behavior given this:
> http://drupal.org/node/144132#buttons
> Although, they both have same #value but will have different ids in the
> form, so Drupal has every reason to differentiate between them (or not??).
> Why is such thing happening? Am I missing something?
> --
> Regards,
> Nitin Kumar Gupta
> http://publicmind.in/blog/

More information about the development mailing list