drupal 常用表单元素

时间:2022-08-22 20:37:49

说明:本文的表单使用都是基于drupal7

【drupal官方api文档】
https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7.x

drupal最常用的就是灵活的模块开发功能,而模块里面表单的使用,就是最常见的了,话不多说,直接上使用的实例,有问题的地方,欢迎大家指正。

    【select】:multiple-多选,没有则为单选
        $form['select'] = [
            '#type' => 'select',
            '#title' => '下拉select框',
            '#multiple' => 'multiple',
            '#options' => ['a', 'b', 'c'], 
           ];
    【checkbox】单个复选框
        $form['checkbox'] = [
            '#type' => 'checkbox',
            '#title' => '是否可用',
           ];
    【textfield】
        $form['textfield'] = [
            '#type' => 'textfield',
            '#title' => '文本框',
            '#default_value' => '默认值',
           ];
    【textarea】
        $form['textarea'] = [
            '#type' => 'textarea',
            '#title' => '输入框',
           '#cols' => 20,
            '#rows' => 5
           ];
    【checkboxes】
       $form['checkboxes'] = [
            '#type' => 'checkboxes',
            '#title' => '多个复选框',
            '#options'=>[1,2,3]
          ];
    【radios】
      $form['radios'] = [
            '#type' => 'radios',
            '#title' => 'radios',
            '#multicolumn' => array(
            'width' => 2
           ),
            '#options' => array(
                  0 => '是',
                  1 => '否',
                ),
            '#default_value' => 1,
            '#prefix' => '<div style="float:left;width:100%" >',
            '#suffix' => '</div>',
          ];
    【选择日期】一般都是按照年月日时分秒,但是无法只选择时分秒,提交表单时,drupal会去校验是否由年月日,没有的话,语法上虽然没错,但是在提交时,获取不到选择的值
        $form['date'] = [
            '#type' => 'date_popup',
            '#title' => '日期',
            '#date_format' => 'Y-m-d H:i',
            '#default_value' => date('Y-m-d H:i'),
            ];
    【选择时间】可以只选择时分秒,很灵活的时间选择器,在时间的默认值上,必须符合时间规范,示例如下:
        $form['time'] = [
            '#type' => 'date_select',
            '#title' => '时间',
            '#date_format' => 'H:i',
            '#default_value' => date('Y-m-d H:i'),
            ];
    【提交按钮】如果不写'#submit',默认提交到该表单对于的submit函数,例如:当前表单叫:test_form() ,那默认的提交表单就是:test_form_submit()
                   '#validate' 当前表单需要校验的函数,同理不写的话,默认是:test_form_validate()
        $form['submit'] = [
            '#type' => 'submit',
            '#value' => '提交',
            '#submit' => array('自定义的提交函数名'),
            '#validate' => array('自定义的校验函数名'),
            ];

生成的表单页面如下:

drupal 常用表单元素