Обработка нескольких кнопок одной формы в Drupal 7

Далее в читаемом вами сейчас материале приведен не сильно сложный пример программного кода, который наглядно демонстрирует то, как в Drupal 7.xx можно обрабатывать клики по 2-м и более кнопкам, расположенным в рамках одной общей родительской формы.

<?php
/**
 * Объявляем HOOK_form():
 */
function druwebru_multiple_buttons_form($form, &$form_state) {
    $form['actions'] = array('#type' => 'actions');
    $form['actions']['ok'] = array(
        '#type' => 'submit',
        '#name' => 'ok',
        '#value' => 'OK',
    );
    $form['actions']['cancel'] = array(
        '#type' => 'submit',
        '#name' => 'cancel',
        '#value' => 'Отмена',
    );
    return $form;
}
 
/**
 * Объявляем HOOK_form_submit():
 */
function druwebru_multiple_buttons_form_submit($form, &$form_state) {
    switch ($form_state['clicked_button']['#name']) {
        case 'ok':
            drupal_set_message('Была нажата кнопка OK!'); 
            break;
        case 'cancel':
            drupal_set_message('Была нажата кнопка Отменить!'); 
            break;
    }
}
?>

При клике на кнопку будет выведено соответствующее системное сообщение. Прошу читателей обратить внимание на 24-ую строчку кода, - она выделена цветом.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.