メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • Drupalの関数(drupal_get_form)を介してフォーム(form)呼び出しと直接に呼び出しの違い

Drupalの関数(drupal_get_form)を介してフォーム(form)呼び出しと直接に呼び出しの違い

drupal
form
menu

関数(drupal_get_form)を介してフォームを呼び出しと直接にフォーム呼び出しの違いは呼び出される関数に「$form, $form_state」引数が渡されるか否か

  • 例: Drupalでフォームページを作成するときに、hook_menu()を実装して、ページのURIを定義します
  • hook_menu()を実装するときに、パラメーター: "paga callback"があります
    • drupal_get_form関数を介して呼び出し
      /**
       * Implements hook_menu().
       */
      function YOUR_MODULE_menu()
      {
          $items['path/%example_data'] = array(
      	       'title' => 'Example Data',
      		   'page callback' => 'drupal_get_form',
      		   'page arguments' => array('example_page_view', 2) ,
      		   'type' => MENU_CALLBACK,
         );
         return $items;
      }
      
      /**
       * drupal_get_formに呼び出される
       * $form, $form_stateが渡される
       */
      function example_page_view( $form, &$form_state, $example_data ){
         // form の処理ロジック
      }
      
    • 直接にフォームを呼び出し
      /**
       * Implements hook_menu().
       */
      function YOUR_MODULE_menu()
      {
          $items['path/%example_data'] = array(
      	       'title' => 'Example Data',
      		   'page callback' => 'example_page_view',
      		   'page arguments' => array( 2) ,
      		   'type' => MENU_CALLBACK,
         );
         return $items;
      }
      
      /**
       * 直接に呼び出される
       * $form, $form_stateが渡されない
       */
      function example_page_view( $example_data ){
         // form の処理ロジック
      }
      
  • この二つの呼び出し方の区別は「$form, $form_state」パラメーターが渡されるか否かでした
    drupal_get_formを介してフォームを呼び出し方と直接にフォームを呼び出し方

$form_stateが渡された利点は:いろいろなデータを埋め込む処理ができます

  • $formと$form_stateが渡されたら何がお得でしょうか。
    • $formはあまり利用されないので、無視してよいです
  • $form_stateにいろいろなデータ/設定などを埋め込むことができます
    function example_page_view( $form, &$form_state, $example_data ){
      // $example_data を$form_stateに埋め込む
      $form_state['example_data'] = $example_data ;
    
       // form の処理ロジック
    }
    
    /**
     * 例:フォームバリデーター
     */
    function example_page_validate( $from, &$fome_state ){
      // $example_dataを取得
      $exampel_data = $form_state['example_date'] ;
    
      // ほかのチェック処理
    }
    
     
    • $form_stateに埋め込まれたデータ/設定がvalidate, submitなどの過程に使用することができます
ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)