Undefined index: #ajax в функции ajax_form_callback()

При написании своего модуля столкнулся со следующей проблемой. В состав модуля входила форма с некими полями и тремя кнопками. Две из трех кнопок обрабатывались AJAXом. Первая успешно работала. А вот со второй возникли проблемы. AJAX не отрабатывал (CallBack-функция не вызывалась). Однако в логах сайта появлялось сообщение: "Undefined index: #ajax в функции ajax_form_callback() (строка 379 в файле .../public_html/includes/ajax.inc)."

Поиск решения в интернете результатов не дал. На офф. сайте друпала эта проблема поднималась, однако тестеры не смогли повторить баг.

Корень проблемы оказался безумно прост. У двух из 3-х кнопок было одинаковое значение параметра #value. Сделав все три параметра разными удалось решить проблему.

Если не углубляться,- выходит, что друпал выбирает какой CallBack нужно вызвать, используя в качестве параметра #value.

Далее 2 примера кода. Первый не рабочий. Второй работает прекрасно!

<?php

function add_bron_form($form, &$form_state) {
    $ajax1 = array(
            'callback' => 'add_new_client',
            'effect' => 'slide',
            'progress' => array(
                'type' => 'throbber',
                'message' => '',
            ),
        );
    $ajax2 = array(
            'callback'=>'add_new_razm',
            'effect'=>'slide',
            'progress'=>array(
                'type'=>'throbber',
                'message'=>''
            )
        );
    
    $form['client']['client_submit'] = array(
        '#type' => 'button',
        '#value'=> 'Добавить клиента',
        '#ajax' => $ajax1
    );
    $form['proj']['proj_submit'] = array(
        '#type' => 'button',
        '#value'=> 'Сохранить',
        '#ajax' => $ajax2
    );
    $form['bron_submit'] = array(
        '#type' => 'submit',
        '#value'=> 'Сохранить',
    );
    return $form;
}

?>

 

 

 

<?php

function add_bron_form($form, &$form_state) {
    $ajax1 = array(
            'callback' => 'add_new_client',
            'effect' => 'slide',
            'progress' => array(
                'type' => 'throbber',
                'message' => '',
            ),
        );
    $ajax2 = array(
            'callback'=>'add_new_razm',
            'effect'=>'slide',
            'progress'=>array(
                'type'=>'throbber',
                'message'=>''
            )
        );
    
    $form['client']['client_submit'] = array(
        '#type' => 'button',
        '#value'=> 'Добавить клиента',
        '#ajax' => $ajax1
    );
    $form['proj']['proj_submit'] = array(
        '#type' => 'button',
        '#value'=> 'Сохранить проживание',
        '#ajax' => $ajax2
    );
    $form['bron_submit'] = array(
        '#type' => 'submit',
        '#value'=> 'Сохранить',
    );
    return $form;
}

 

?>