Функция отправки формы не работает - PullRequest
0 голосов
/ 13 октября 2011

Я разрабатываю специальный модуль для Drupal 6, который создает простую форму.Моя проблема в том, что функция отправки не вызывается / не обрабатывается !!!Вот мой код:

<code>function listgroups_menu(){
    $items['user/%/groups-settings'] = array(
        'title' => 'Groups Settings',
        'page callback' => 'listgroups_groups_list',
        'page arguments' => array(1),
        'access callback' => TRUE,
        'type' => MENU_LOCAL_TASK,
    );

    return $items;
 }

 function listgroups_groups_list ($uid){
    /*
         * Couple lines here to access the DB & get the user's $groups.
         */

    variable_set('listgroups_database_result', $groups );
    $output = drupal_get_form('listgroups_settiongs_form');
    return $output;
 }


/**
 * Form Builder
 */
 function listgroups_settiongs_form(){
    $groups = variable_get('database_result', array());
    //Building the form
    $form['display_option'] = array(
        '#type' => 'checkbox',
        '#title' => t('Show my group.'),
    );
    $form['groups_selection'] = array(
        '#type' => 'radios',
        '#title' => 'Please select your group',
        '#options' => $groups,
    );
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Save'),
    );

    return system_settings_form($form);
 }

/** 
 * Submition
 */
 function listgroups_settiongs_form_submit($form, &$form_state){    
    echo "<pre>I'm heeeeeeeeeeeeeeeeeeeeeerr!!!
"; drupal_set_message ('Ваши настройки были сохранены! ДА !!!');}

Теперь визуализация формы и получение данных из базы данныхпросто идеально. Это когда я нажимаю кнопку отправки, я ничего не получаю !! Только страница обновляется, а сообщения не появляются !!

Есть идеи почему? !!!!

Ответы [ 2 ]

1 голос
/ 13 октября 2011

используйте

return $form; 

вместо

return system_settings_form($form);

, а также

<code>function xyz_form_submit($form, &$form_state){    
    //echo "<pre>I'm heeeeeeeeeeeeeeeeeeeeeerr!!!
"; drupal_set_message ('
I\'m heeeeeeeeeeeeeeeeeeeeeerr!!!
Ваши настройки были сохранены! ДА !!!');}

проблема была в том, что если вы используете system_setting_form, то она начинает вести себя как страница системных настроек, которая обычно используется для хранения некоторой информации в базе данных. Поэтому, чтобы она стала нормальной, вам нужно только вернуть$ форма.

0 голосов
/ 14 января 2015

Включите обработчик отправки и назначьте ему функцию

 $form['submit'] = array(
            '#type' => 'submit',
            '#value' => t('Save'),
     '#submit' => array('my_module_function_submit'),
        );

my_module_function_submit($form, $form_state){
.
.
.
.
.
}

Ссылка на эту ссылку https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#submit_property

...