Лучшее, что нужно сделать, если у вас есть две кнопки отправки в форме и вы хотите, чтобы они делали разные вещи, - это создать отдельную функцию отправки для каждой кнопки и соединить их. Одна из приятных особенностей FormAPI заключается в том, что он автоматически связывает форму с обработчиком отправки, но если у вас есть две кнопки отправки, вы хотите перейти в новое место.
Итак, код вашей формы может содержать:
$form['submit_one'] = array(
'#type' => 'submit',
'#value' => t('Submit One'),
'#submit' => array('my_module_form_submit_one'),
);
$form['submit_two'] = array(
'#type' => 'submit',
'#value' => t('Submit Two'),
'#submit' => array('my_module_form_submit_two'),
);
Но я не знаю, что вы имеете в виду под form_alter () - нет причин использовать какой-либо вид изменения формы.
Редактировать: Как уже упоминалось в комментариях - если вам нужны разные функции проверки для двух кнопок, вы также можете включить '#validate' => array('my module_form_validate_one')
и '#validate' => array('my module_form_validate_two')
в соответствующие массивы кнопок. Но это не обязательно, и если стандартная функция проверки правильности формы работает нормально, тогда используйте это.