0

単純なフォームを作成するDrupal6のカスタムモジュールを開発しています。私の問題は、送信関数が呼び出されていない/処理されていないことです!!! これが私のコードです:

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!!!</pre>";
    drupal_set_message('Your settings have been saved! YES!!!');
 }

これで、Dbのフォームレンダリングとデータ取得は完璧になりました。送信ボタンをクリックしても何も表示されません!! ページのみが更新され、メッセージは表示されません!!

理由は何ですか?!!!!

4

2 に答える 2

1

使用する

return $form; 

それ以外の

return system_settings_form($form);

そしてまた

function xyz_form_submit($form, &$form_state){    
    //echo "<pre>I'm heeeeeeeeeeeeeeeeeeeeeerr!!!</pre>";
    drupal_set_message('<pre>I\'m heeeeeeeeeeeeeeeeeeeeeerr!!!</pre>Your settings have been saved! YES!!!');
}

問題は、system_setting_form を使用すると、データベースに情報を保存するために一般的に使用されるシステム設定ページとして動作し始めることでした。したがって、通常の形式にすると、$form のみを返す必要があります。

于 2011-10-13T12:27:08.967 に答える