Form组件

定义文件位置:

/extend/fast/Formphp

通用参数

  1. $name 通常为我们组件的名称(name属性值),我们在后台接收时可以通过这个名称来获取到它所对应的值
  2. $value 通常为我们数据库中的值(元素value值),在新增的时候通常为空,在修改的时候通常需要是数据库中对应字段的值
  3. $options 组件的扩展属性,通常为一一键值匹配并最终渲染在组件的属性中,通常我们使用的有data-rule/disabled/readonly/multiple等等,也常用于自定义组件属性。

前端展示:

方法1 php输出:

  1. //必须namespace fast\Form;
    echo Form::text('id',123456789,[]);

form组件列表:

  1. //生成Token
  2. Form::token()
  3. //Label标签
  4. Form::label(string $name, string $value = null, array $options = [])
  5. //按类型生成文本框
  6. Form::input($type, $name, string $value = null, array $options = [])
  7. //普通文本框
  8. Form::text(string $name, string $value = null, array $options = [])
  9. //密码文本框
  10. Form::password(string $name, array $options = [])
  11. //隐藏文本框
  12. Form::hidden(string $name, string $value = null, array $options = [])
  13. //Email文本框
  14. Form::email(string $name, string $value = null, array $options = [])
  15. //URL文本框
  16. Form::url(string $name, string $value = null, array $options = [])
  17. //文件组件
  18. Form::file(string $name, array $options = [])
  19. //多行文本框
  20. Form::textarea(string $name, string $value = null, array $options = [])
  21. //富文本编辑器
  22. Form::editor(string $name, string $value = null, array $options = [])
  23. //下拉列表组件
  24. Form::select(string $name, array $list = [], string $selected = null, array $options = [])
  25. //下拉列表组件(多选)
  26. Form::selects(string $name, array $list = [], string $selected = null, array $options = [])
  27. //下拉列表组件(友好)
  28. Form::selectpicker(string $name, array $list = [], string $selected = null, array $options = [])
  29. //下拉列表组件(友好)(多选)
  30. Form::selectpickers(string $name, array $list = [], string $selected = null, array $options = [])
  31. //动态下拉列表组件
  32. Form::selectpage(string $name, string $value, string $url, string $field = null, string $primaryKey = null, array $options = [])
  33. //动态下拉列表组件(多选)
  34. Form::selectpages(string $name, string $value, string $url, string $field = null, string $primaryKey = null, array $options = [])
  35. //城市选择组件
  36. Form::citypicker(string $name, string $value, array $options = [])
  37. //开关组件
  38. Form::switcher(string $name, string $value, array $options = [])
  39. //日期选择组件
  40. Form::datepicker(string $name, string $value, array $options = [])
  41. //时间选择组件
  42. Form::timepicker(string $name, string $value, array $options = [])
  43. //日期时间选择组件
  44. Form::datetimepicker(string $name, string $value, array $options = [])
  45. //日期区间组件
  46. Form::daterange(string $name, string $value, array $options = [])
  47. //时间区间组件
  48. Form::timerange(string $name, string $value, array $options = [])
  49. //日期时间区间组件
  50. Form::datetimerange(string $name, string $value, array $options = [])
  51. //字段列表组件
  52. Form::fieldlist(string $name, string $value, string $title = null, string $template = null, array $options = [])
  53. //联动组件
  54. Form::cxselect(string $url, array $names = [], array $values = [], array $options = [])
  55. //选择数字区间
  56. Form::selectRange(string $name, string $begin, string $end, string $selected = null, array $options = [])
  57. //选择年
  58. Form::selectYear(string $name, string $begin, string $end, string $selected = null, array $options = [])
  59. //选择月
  60. Form::selectMonth(string $name, string $selected = null, array $options = [], string $format = '%m')
  61. //单个复选框
  62. Form::checkbox(string $name, string $value = '1', string $checked = null, array $options = [])
  63. //一组复选框
  64. Form::checkboxs(string $name, array $list = [], string $checked = null, array $options = [])
  65. //单个单选框
  66. Form::radio(string $name, string $value = null, string $checked = null, array $options = []))
  67. //一组单选框
  68. Form::radios(string $name, array $list = [], string $checked = null, array $options = []))
  69. //上传图片组件
  70. Form::image(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = [])
  71. //上传图片组件(多图))
  72. Form::images(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = [])
  73. //上传文件组件
  74. Form::upload(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = [])
  75. //上传文件组件(多文件))
  76. Form::uploads(string $name = null, string $value, array $inputAttr = [], array $uploadAttr = [], array $chooseAttr = [], array $previewAttr = [])
  77. //表单button
  78. Form::button(string $value = null, array $options = [])

方法2 模板输出:

  1. {:Form::text('row[text]', '', ['data-rule'=>'required'])}

注意:form组件必须要依赖js的Form.api.bindevent("form[role=form]");进行组件初始化,否则部分组件会不生效

所以引用了这些代码的话就必须在相应的js里加上这段代码(它包含了几乎所以的表单事件)

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('文本框')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::text('row[text]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('多行文本框')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::textarea('row[textarea]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('富文本编辑器')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::editor('row[editor]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('单选')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::radios('row[radio]', ['aa'=>'AA', 'bb'=>'BB'], 'aa', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('复选')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::checkboxs('row[checkbox]', ['aa'=>'AA', 'bb'=>'BB'], 'aa', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('下拉列表')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::select('row[select]', ['aa'=>'AA', 'bb'=>'BB'], 'aa', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('下拉列表(多选)')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::selects('row[select]', ['aa'=>'AA', 'bb'=>'BB'], 'aa', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('下拉列表(友好)')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::selectpicker('row[selectpicker]', ['aa'=>'AA', 'bb'=>'BB'], 'aa', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('下拉列表(友好)(多选)')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::selectpickers('row[selectpickers]', ['aa'=>'AA', 'bb'=>'BB'], 'aa', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('动态下拉列表')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::selectpage('row[select]', 2, 'category/selectpage', null, null, ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('日期')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::datepicker('row[datepicker]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('时间')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::timepicker('row[timepicker]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('日期时间')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::datetimepicker('row[timepicker]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('日期区间')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::daterange('row[daterange]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('时间区间')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::timerange('row[timerange]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('日期时间区间')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::datetimerange('row[datetimerange]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('动态字段列表')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::fieldlist('row[fieldlist]', ['aa'=>'AA', 'bb'=>'BB'], null, '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('单图')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::image('row[image]', '/uploads/20180629/b83227ea668e7b2d61def9812bbce3da.png', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

或者:

  1. <div class="form-group">
  2. <label for="c-avatar" class="control-label col-xs-12 col-sm-2">头像:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. <div class="input-group">
  5. <input id="c-avatar" data-rule="" class="form-control" size="50" name="avatar" type="text" value="img/101010.jpg">
  6. <div class="input-group-addon no-border no-padding">
  7. <span><button type="button" id="plupload-avatar" class="btn btn-danger plupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> 上传</button></span>
  8. <span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
  9. </div>
  10. <span class="msg-box n-right" for="c-avatar"></span>
  11. </div>
  12. <ul class="row list-inline plupload-preview" id="p-avatar"></ul>
  13. </div>
  14. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('多图')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::images('row[images]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('单文件')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::upload('row[upload]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('多文件')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::uploads('row[uploads]', '', ['data-rule'=>'required'])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('开关')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::switcher('row[switcher1]', '0', ['color'=>'success'])}
  5. {:Form::switcher('row[switcher2]', '1', ['color'=>'yellow', 'disabled'=>true])}
  6. {:Form::switcher('row[switcher3]', 'Y', ['color'=>'navy', 'yes'=>'Y', 'no'=>'N'])}
  7. {:Form::switcher('row[switcher4]', '1', ['color'=>'info'])}
  8. {:Form::switcher('row[switcher4]', '1', ['color'=>'danger', 'disabled'])}
  9. </div>
  10. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group">
  2. <label class="control-label col-xs-12 col-sm-2">{:__('联动选择')}:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. {:Form::cxselect('ajax/area', ['province','city'], ['province'=>37, 'city'=>38])}
  5. </div>
  6. </div>

---------------------------------------------------------------------------------------------------------------------------------------------

  1. <div class="form-group layer-footer">
  2. <label class="control-label col-xs-12 col-sm-2"></label>
  3. <div class="col-xs-12 col-sm-8">
  4. <button type="submit" class="btn btn-success btn-embossed disabled">{:__('Submit')}</button>
  5. <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
  6. </div>
  7. </div>

除了上面的表单组件可以快速生成表单元素,还有其他快速生成的方式

如:图片上传:

  1. <div class="form-group">
  2. <label for="c-avatar" class="control-label col-xs-12 col-sm-2">头像:</label>
  3. <div class="col-xs-12 col-sm-8">
  4. <div class="input-group">
  5. <input id="c-avatar" data-rule="" class="form-control" size="50" name="avatar" type="text" value="img/101010.jpg">
  6. <div class="input-group-addon no-border no-padding">
  7. <span><button type="button" id="plupload-avatar" class="btn btn-danger plupload" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-avatar"><i class="fa fa-upload"></i> 上传</button></span>
  8. <span><button type="button" id="fachoose-avatar" class="btn btn-primary fachoose" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
  9. </div>
  10. <span class="msg-box n-right" for="c-avatar"></span>
  11. </div>
  12. <ul class="row list-inline plupload-preview" id="p-avatar"></ul>
  13. </div>
  14. </div>
  15. //无需表单事件?

表单组件 form fastadmin(生成表单元素)的更多相关文章

  1. 表单生成器(Form Builder)之表单数据存储结构mongodb篇

    从这篇笔记开始,记录一下表单生成器(Form Builder)相关的一些东西,网上关于他的介绍有很多,这里就不解释了. 开篇说一下如何存储Form Builder生成的数据.

  2. django 认证模块auth,表单组件form

    django认证系统(auth): 1.首先我们在新窗口中打开一个django项目,之后点击,

  3. Django form表单 组件

    目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...

  4. 封装Vue Element的form表单组件

    前两天封装了一个基于vue和Element的table表格组件,阅读的人还是很多的,看来大家都是很认同组件化.高复用这种开发模式的,毕竟开发效率高,代码优雅,逼格高嘛.虽然这两天我的心情很糟糕,就像& ...

  5. vue自定义表单生成器,可根据json参数动态生成表单

    介绍 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置17种常用表单组件和自定义组件,再复杂的表单都可 ...

  6. 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照

    前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...

  7. Flutter 基础组件:输入框和表单

    前言 Material组件库中提供了输入框组件TextField和表单组件Form. 输入框TextField 接口描述 const TextField({ Key key, // 编辑框的控制器,通 ...

  8. 微信小程序组件form

    表单组件form:官方文档 Demo Code: Page({ formSubmit: function(e) { console.log('form发生了submit事件,携带数据为:', e.de ...

  9. form表单组件

    1.sweetalert 组件地址 form组件 form表单完成的事情,:   提供input可以提交数据, 对提交的数据进行校验,提供错误提示 定义form组件 from django impor ...

随机推荐

  1. Js中常用知识点(typeof、instanceof、动态属性、变量作用域)

    1.Js中各类型的常量表示形式:Number:number     String:string    Object:objec 2.typeof运算符在Js中的使用:用于判断某一对象是何种类型,返回值 ...

  2. 关于FlexBox的布局

    关于FlexBox的布局 基本要素 因为FlexBox是一整个模块并不是一个单独的属性,它涉及到很多东西包括它的所有设置属性.一些属性是需要被设置在容器(父级元素,称为『弹性容器』),而一些其他的属性 ...

  3. redis简单命令总结

    1.连接到redis服务器:redis-cli -h 127.0.0.1 -p 6379 -a 密码 select index 切换 redis 数据库 flushdb 删除当前数据库所有的 key ...

  4. BZOJ2588 主席树 + 树上差分

    https://www.lydsy.com/JudgeOnline/problem.php?id=2588 题意:强制在线的询问树链权值第K小(无修) 这种类似于第K小的题,一般容易想到主席树,但是树 ...

  5. Gaussian Process for Regression

    python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...

  6. [译]Ocelot - Request Aggregation

    原文 Aggregate ReRoutes用来组合多个ReRoutes,将它们的响应结果映射到一个响应中返回给客户端. 为了使用Aggregate ReRoutes,你必须像下面的ocelot.jso ...

  7. IIS--互联网信息服务

    IIS--互联网信息服务 1.IIS是微软出品的一个服务器插件 2.IIS的功能:1)发布web网站 2)发布ftp站点 WEB服务器:1.监听TCP80端口 --- http://www.baidu ...

  8. 代码,java_web

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. FM(Factorization Machines)

    摘自 https://www.jianshu.com/p/1687f8964a32 https://blog.csdn.net/google19890102/article/details/45532 ...

  10. 获取reporting services导出pdf的url的方法

    public static string genRptUrl(string strRptServer, string strRptPath, string strRptName, ParameterV ...