【问题标题】:How to create a form inside a drupal module?如何在 drupal 模块中创建表单?
【发布时间】:2012-07-21 11:41:49
【问题描述】:

我正在网上搜索一个教程来创建一个显示在页面上的表单, 当我们使用模块和块显示内容时,我们是否应该在模块内显示一个表单? 由于我是drupal的新手,所以我对drupal形式一无所知。 我下载并安装了示例表单模块。但我不知道这个表格会在哪里显示。 我从这里下载 http://drupal.org/node/1121110

【问题讨论】:

    标签: php drupal drupal-7 drupal-modules drupal-fapi


    【解决方案1】:

    即使您是 drupal 新手,也没有那么复杂。在这个示例中,我所要做的就是使用 hook_menu() 并了解来自 drupal form api reference 的可用表单项。

    以下是您尝试做的示例。

    /**
     * Implementation of hook_menu()
     */
    function mymodule_menu()
    {
        $items = array();
    
        $items['my-custom-page-path'] = array(
            'title'             => 'My Page Title',
            'description'       => t(''),
            'access callback'   => 'user_access',
            'access arguments'  => array('access content'),
            'page callback'     => 'drupal_get_form',
            'page arguments'    => array('mymodule_form_id'),
        );
    
        return $items;
    }
    
    function mymodule_form_id($form, &$form_state)
    {
        $form = array();
    
        $form['my_textfield'] = array(
            '#type'         => 'textfield',
            '#title'        => t('Text Field'),
            '#description'  => t(''),
            '#weight'       => 20,
            '#required'     => TRUE,
            '#size'         => 5,
            '#maxlength'    => 5,
        );
    
        $form['submit'] = array(
            '#type'         => 'submit',
            '#value'        => t('Save settings'),
            '#weight'       => 10000,
        );
    
        return $form;
    }
    
    /**
    * Form validation callback
    */
    function mymodule_form_id_validate($form, &$form_state)
    {
        // notice adding "_validate" to the form id
    }
    
    /**
    * Form submission callback
    */
    function mymodule_form_id_submit($form, &$form_state)
    {
        // notice adding "_submit" to the form id
    }
    

    【讨论】:

      【解决方案2】:
      #Here is the simple code for creating form in module#
      
      ===============================================================
      
      /*..firstly create a menu in module by copying this code..*/
      function form_test_menu() {
          $items['formtest'] = array(
                              'title' => 'Form Test',
                              'page callback' => 'drupal_get_form',
                              'page arguments' => array('form_test_form'),
                              'access callback' => TRUE,
                              );
          return $items;
      }
      
      /*...Now create fields like below...*/
      function form_test_form($form,&$form_submit) {
          $form['firstname'] = array(
                                  '#title' => t('Firstname'),
                                  '#type' => 'textfield',
                                  '#required' => TRUE,
                                  );
          $form['lastname'] = array(
                                  '#title' => t('Lastname'),
                                  '#type' => 'textfield',
                                  );
          $form['submit'] = array(
                              '#value' => 'Submit',
                              '#type' => 'submit',
                              );
          return $form;
      }
      

      【讨论】:

        猜你喜欢
        • 2016-08-07
        • 2013-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        相关资源
        最近更新 更多