メインコンテンツに移動
ホーム

古松

メインナビゲーション

  • ホーム
  • ビデオ
  • ご連絡

パンくず

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

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

関数(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などの過程に使用することができます

検索フォーム

カテゴリ別

  • laravel
  • drupal
  • javascript
  • windows
  • html
  • mysql
  • php
  • apache
  • css
  • SEO
  • video
  • wordpress
  • linux
  • python
  • Electron
  • Visual Studio Code

google ads