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().

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

moodle中文API之表单API的更多相关文章

  1. Django表单API详解

    声明:以下的Form.表单等术语都指的的广义的Django表单. Form要么是绑定了数据的,要么是未绑定数据的. 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单.如果未绑 ...

  2. 第四章:Django表单 - 2:Django表单API详解

    声明:以下的Form.表单等术语都指的的广义的Django表单. Form要么是绑定了数据的,要么是未绑定数据的. 如果是绑定的,那么它能够验证数据,并渲染表单及其数据,然后生成HTML表单.如果未绑 ...

  3. c# post方式请求java form表单api

    using System; using System.Collections.Generic; using System.Net.Http; namespace ConsoleApplication1 ...

  4. 元数据管理—动态表单设计器在crudapi系统中完整实现

    表单设计 在前面文章中,我们通过一系列案例介绍了表单设计的一些基本功能,表单设计起到非常重要作用,也是crudapi核心,所以本文会详细介绍表单设计中一些其它功能. 概要 表单字段column属性 列 ...

  5. sbadmin表单事件

    Form表单 自定义表单 <from action="" method="'><!---      这里可以用表单组件快速生成表单元素哦        ...

  6. jQuery表单验证组件BootstrapValidator

    github:https://github.com/nghuuphuoc/bootstrapvalidator 参考博客:JS组件系列——Form表单验证神器: BootstrapValidator ...

  7. django Form表单的使用

    Form django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form ...

  8. AngularJs学习笔记-表单处理

    表单处理 (1)Angular表单API 1.模板式表单,需引入FormsModule 2.响应式表单,需引入ReactiveFormsModule   (2)模板式表单 在Angular中使用for ...

  9. Vue中Form表单验证无法消除验证问题

    iView的表单api给出了一个resetFields方法,用于重置整个表单输入的内容并清除验证提示. 但是有时候需要只消除部分的iview的resetFields方法源码是这样的resetField ...

随机推荐

  1. 刘汝佳黑书 pku等oj题目

    原文地址:刘汝佳黑书 pku等oj题目[转]作者:小博博Mr 一.动态规划参考资料:刘汝佳<算法艺术与信息学竞赛><算法导论> 推荐题目:http://acm.pku.edu. ...

  2. 设计模式(二)单件模式Singleton(创建型)

    SINGLETON(单件)—对象创建型模式 几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的.您希望在应用程序中共享数据库句柄,因为在保持连接打开或关 ...

  3. 【剑指offer】字符串转整数

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/28015693 题目描写叙述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函 ...

  4. PE文件简单介绍

    PE(Portable Execute)文件是WIN32下可运行文件遵循的数据格式,也是反汇编调试不可缺少的文件,常见的pe文件有.exe和.dll文件.本文主要介绍pe文件的结构和虚拟内存地址转换到 ...

  5. 强大的Http监控工具Fidder

    软件下载:http://fiddler2.com/get-fiddler 软件学习:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728 ...

  6. 杭电ACM1408——盐水的故事

    简单的题目,RT,就能够写出代码.须要注意的是类型的应用,应该用浮点型. 以下的是AC的代码: #include <iostream> using namespace std; int m ...

  7. AngularJS之WebAPi上传

    AngularJS之WebAPi上传(十)   前言 前面一系列我们纯粹是讲AngularJS,在讲一门知识时我们应该结合之前所学综合起来来做一个小的例子,前面我们讲了在MVC中上传文件的例子,在本节 ...

  8. QT_opengl_gluPerspective没有定义的处理方法

    原地址:http://blog.sina.com.cn/s/blog_6b11cdda0101fe27.html 例如: gluPerspective( 45.0, (GLfloat)width/(G ...

  9. Windows Azure使用VS 2010的云应用开发过程

    原文 Windows Azure使用VS 2010的云应用开发过程 作为技术人员,如果在2010还不知道云计算,那么你已经“OUT”了:作为Visual Studio平台的使用者,如果你不知道VS 2 ...

  10. windows和linux套接字中的select机制浅析

    先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待 ...