Drupal7:モジュールの作り方「フォーム」

今回は前回「Drupal7:モジュールの作り方「Hello World」」で作成したHello Worldモジュールに「フォーム」の機能を加えてみたいと思います。

 

手順

  1. 「mymodule.module」ファイルを開きます
  2. 以下のソースを「mymodule_menu() 」ファンクションのitemsの配列に挿入します
    $items['form_test'] = array(
        'title' => '簡単なフォームのテスト', 
        'page callback' => 'my_add_testform_callback',
        'access arguments' => array('access content'),
         'type' => MENU_CALLBACK,
    );
  3. 次のファンクションを追加します
    function my_add_testform_callback() {
       return drupal_get_form('mymodule_add_testform_form');
    }
  4. 下記のフォーム用ファンクションを追加します。 ※Drupal7 Form API Reference
    function mymodule_add_testform_form($form, &$form_state) {
        $form = array (
        '#action' => '#',
    
        'number' => array (
            '#type' => 'textfield',
            '#title' => t('テストフィールド'),
            '#description' => t('テストフィールド説明'),
    
            '#required' => TRUE,
        ),
        'submit' => array ( //We define a simple submit button
    
            '#type' => 'submit',
            '#value' => t('テスト送信'),
        ),
        );
    
    return $form;
    }
  5. バリデーションコードと、Formのサブミット後のコードを以下に記述します
    function mymodule_add_testform_form_validate($form, &$form_state){
    
        if(strlen($form_state['values']['number']) > 10) {
            form_set_error('', t('Hey, your name is too long!'));
        }
    }
    
    function mymodule_add_testform_form_submit($form, &$form_state) {
        //My success processing
        drupal_set_message(t('Yay, your input number is '.
        $form_state['values']['number']));
    }

 

結果

「form_test」にアクセスし、作成したフォームが正しく動作するか確認ください

ヒン

Drupalのモジュールファイルを更新した場合、キャッシュクリアとメニュー情報を更新する必要があります。
Develモジュールをインストールすることで、メニューから簡単に更新することが可能です。

 

関連記事

Drupal7:モジュールの作り方「Hello World」

 

 

関連タグ:

この記事をシェアする

次へ
前へ