首页 > 代码库 > form -转载于blfshiye

form -转载于blfshiye

Form API

表单API

文件夹 

1.概述

2.亮点

3.使用方法

4.表单元素

  4.1 基本表单元素

  4.2 定制表单元素

5.经常使用函数

  5.1  add_action_buttons($cancel =true,$submitlabel =null)

  5.2 setDefault()

  5.3 disableif()

  5.4 addRule()

  5.5 setHelpButton

  5.6 addHelpButton

  5.7 setType()

  5.8 disable_form_change_checker()

 

 

1.概述

WEB表单在Moodle中创建是使用Form API。Form API支持全部的html表单元素(checkbox/radio/textbox 等等),并且引入安全检查。

2.亮点

1. 支持拖拽

2. 较少使用表格布局.

3. 表当数据安全, 通过携带必须的參数,可选的session key.

4. 支持client有效性检查

5. 能够在表单元素里加入Moodle帮助button.

6. 支持文件库

7. 支持很多定制的moodle特定的与非特定的表单元素。

8. 可加入反复元素.

9. 按组加入表单元素

3.使用方法

在 moodle中创建一个表单, 你须要创建一个class 继承自 moodleform  class 并且还要重写 definition方法来包括你要创建的表单元素。

 

//moodleform 类定义在 formslib.php文件里require_once("$CFG->libdir/formslib.php"); class simplehtml_form extends moodleform {    //为form加入元素    public function definition() {        global $CFG;        $mform = $this->_form; //别忘了下划线        $mform->addElement(‘text‘, ‘email‘, get_string(‘email‘)); // 加入元素到你的表单        $mform->setType(‘email‘, PARAM_NOTAGS);                   //设置元素类型        $mform->setDefault(‘email‘, ‘Please enter email‘);        //设置元素默认值            ...    }    //定制有效性检查能够放在这个函数里    function validation($data, $files) {        return array();    }}

 

 

然后初始化 form (这个样例是初始化 simplehtml_form)在你要加入表单的页面里。

//首先包括 simplehtml_form.php 文件require_once(‘PATH_TO/simplehtml_form.php‘); //然后实例化simplehtml_form $mform = new simplehtml_form(); //Form程序处理和显示放在这里if ($mform->is_cancelled()) {    //处理取消表单操作(假设有取消button的话)} else if ($fromform = $mform->get_data()) {  //I这里能够进行数据有效性检查 $mform->get_data() 返回表单传递过来的数据.} else {  // 这个分支是表单初始化或者假设表单提交后数据不合法,那么表单就得又一次显示    //设置默认数据 假设存在的话  $mform->set_data($toform);  //显示表单  $mform->display();}

 

4.表单元素

  4.1 基本表单元素

1. button  普通按钮

2. checkbox  复选框

3. radio   单选框

4. select  下拉列表

5. multi-select  多选下拉列表

6. password  密码框

7. hidden  隐藏表单元素

8. html - div元素

9. static - 显示一个静态的文本.

10. text - 文本框

11. textarea  - 文本域

 

  4.2 定制表单元素

1. advcheckbox - Advance checkbox

2. passwordunmask - 密码元素是可选将密码显示成普通文本.

3. recaptcha   - 验证码

4. selectyesno  - 是否选择框

5. selectwithlink  -  带链接的下拉选择框

6. date_selector   日期选择器

7. date_time_selector  日期时间选择器

8. duration   持续时间

9. editor   富文本编辑器

10. filepicker - 上传单个文件

11. filemanager - 上传多个文件

12. tags   - 标记

13. addGroup  - 加入到组

14. modgrade  - 模块分数

15. modvisible  - 模块可见性

16. choosecoursefile  - 选择课程文件

17. grading   - 等级

18. questioncategory  - 问题类型

 

5.经常使用函数

  5.1  add_action_buttons($cancel =true,$submitlabel =null)

加入动作button,第一个參数是要不要加入取消button,第二个參数是提交button的文本信息是什么可用函数is get_string(‘savechanges‘). 获得,最贱的的默认例如以下:

$this->add_action_buttons();

 

 5.2  setDefault()

为单个元素设置默认值

  5.3 disableif()

在这里加入条件隐藏某些不满足显示条件的表单元素或组。

  5.4 addRule()

 server/client 加入有效性检查规则像文本框类型为email的时候.

  5.5 setHelpButton()

   为表单元素设置一个弹出的帮助信息

  5.6 addHelpButton()

   加入上面设置好的帮助信息。

  5.7 setType()

PARAM_* 提交时会检查的特殊变量类型.

  5.8 disable_form_change_checker()

默认情况下不论什么 Moodle 表单江会弹出"你确定提交?" 的警告框,假设你想做些改变然后尝试离开这个页面不做保存偶尔,这是不希望看到的 这样的情况下你能够调用 

$mform->disable_form_change_checker().


因为时间精力有限,没有细化的查出每一个函数及表单元素的用法,可是,相关用法能够点击相应文字连接到官方相应说明文档中查找。

form -转载于blfshiye