如何使用PHP实现动态表单生成工具
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,小编给大家分享一下如何使用PHP实现动态表单生成工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!表单包含多种input类
千家信息网最后更新 2025年02月24日如何使用PHP实现动态表单生成工具
小编给大家分享一下如何使用PHP实现动态表单生成工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
表单包含多种input类型,包括 hiiden类型 ,text类型,radio类型,checkbox类型,textarea类型,file类型,select类型等基础类型,手写表单就是累耗时耗力开发销量太低而且代码量大了还容易写出bug,每个页面的表单遇到改动的时候恨不得长十双手去改,于是我自己开发了一个php写的表单生成工具,在业务逻辑通过配置或者链式操作去初始表单结构和数据,不管有多少页面都只需要通过配置下就行,我写的这个表单工具 支持块表单,行内表单,table类型表单,支持表单美化 默认是layui效果,也支持jquery控制表单行为,只需要引入layui样式和js即可。在github主页demo目录也提供了示例代码运行查看效果,
Form介绍
使用php编写的html表单生成工具,没有任何依赖可独立使用,支持链式操作和配置创建表单,支持表单美化(默认为layui风格)
特点
没有任何依赖可独立使用
支持链式操作创建表单
支持数组配置创建表单
支持块表单
支持行内表单
支持table表单
支持表单美化(默认为layui风格)且方便扩展
项目主页链接
github: https://github.com/mgckid/form
gitee:https://gitee.com/mgckid/form
安装方法
composer require mgckid/form
快速使用
链式操作创建块表单
form_method(Form::form_method_post) ->form_action('/') ->input_text('姓名', '', 'name', '法外狂徒张三') ->radio('性别', '', 'male', ['male' => '男', 'female' => '女'], 'male') ->checkbox('爱好', '', 'interest', ['ktv' => 'K歌', 'dance' => '跳舞', 'movie' => '看电影', 'run' => '跑步'], 'ktv,run') ->input_inline_start() ->input_text('省份', '', 'sheng', '湖北省') ->input_text('市', '', 'shi', '武汉市') ->input_text('区', '', 'qu', '武昌区') ->input_text('街道', '', 'jie', '紫阳路36号') ->input_inline_end() ->input_hidden('id', '1') ->input_text('user name', '', 'user', 'admin') ->input_password('password', '', 'password', '123456') ->radio('is active', '', 'is_active', [ ['value' => '1', 'name' => 'active'], ['value' => '0', 'name' => 'unactive'] ], 1) ->checkbox('user role', '', 'role', [ ['value' => '1', 'name' => 'boss'], ['value' => '2', 'name' => 'manager'], ['value' => '3', 'name' => 'employee'], ], '1,2') ->select('user department', '', 'department', [ ['value' => '1', 'name' => 'sales'], ['value' => '2', 'name' => 'hr'], ['value' => '3', 'name' => 'secured'], ], 1) ->form_class(LayuiForm::form_class_pane) ->input_submit('确认保存', 'class="layui-btn" lay-submit lay-filter="saveBtn"') //->input_date() //->editor() //->form_data() //->table() ->create();?>
数组配置创建块表单
array( 'title' => 'Id', 'name' => 'id', 'description' => 'Id', 'enum' => array(), 'type' => 'hidden', 'widget_type' => '', ), 1 => array( 'title' => '用户id', 'name' => 'user_id', 'description' => '用户id', 'enum' => array(), 'type' => 'hidden', 'widget_type' => '', ), 2 => array( 'title' => '用户名', 'name' => 'username', 'description' => '用户名', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 3 => array( 'title' => '真实姓名', 'name' => 'true_name', 'description' => '真实姓名', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 4 => array( 'title' => '密码', 'name' => 'password', 'description' => '密码', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 5 => array( 'title' => '邮箱', 'name' => 'email', 'description' => '邮箱', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 6 => array( 'title' => '是否删除', 'name' => 'deleted', 'description' => '是否删除', 'enum' => array( 0 => '未删除', 1 => '已删除', ), 'type' => 'none', 'widget_type' => '', ), 7 => array( 'title' => '创建时间', 'name' => 'created', 'description' => '创建时间', 'enum' => array(), 'type' => 'none', 'widget_type' => 'date', ), 8 => array( 'title' => '修改时间', 'name' => 'modified', 'description' => '修改时间', 'enum' => array(), 'type' => 'none', 'widget_type' => 'date', ), ); $data = array( 'id' => 2, 'user_id' => 'feac0fa3-3245-11e6-9b90-e03f49a02407', 'username' => 'admin', 'true_name' => '系统管理员', 'email' => '', 'deleted' => 0, 'created' => '2016-06-14 23:39:52', 'modified' => '2020-03-12 20:07:48', ); \Form::getInstance() ->form_schema($init) ->form_data($data) ->input_submit('确认保存', 'class="layui-btn" lay-submit lay-filter="saveBtn"') ->create();
行内表单
array( 'title' => 'Id', 'name' => 'id', 'description' => 'Id', 'enum' => array(), 'type' => 'hidden', 'widget_type' => '', ), 1 => array( 'title' => '用户id', 'name' => 'user_id', 'description' => '用户id', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 2 => array( 'title' => '用户名', 'name' => 'username', 'description' => '用户名', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 3 => array( 'title' => '真实姓名', 'name' => 'true_name', 'description' => '真实姓名', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 4 => array( 'title' => '密码', 'name' => 'password', 'description' => '密码', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 5 => array( 'title' => '邮箱', 'name' => 'email', 'description' => '邮箱', 'enum' => array(), 'type' => 'text', 'widget_type' => '', ), 6 => array( 'title' => '是否删除', 'name' => 'deleted', 'description' => '是否删除', 'enum' => array( 0 => '未删除', 1 => '已删除', ), 'type' => 'none', 'widget_type' => '', ), 7 => array( 'title' => '创建时间', 'name' => 'created', 'description' => '创建时间', 'enum' => array(), 'type' => 'none', 'widget_type' => 'date', ), 8 => array( 'title' => '修改时间', 'name' => 'modified', 'description' => '修改时间', 'enum' => array(), 'type' => 'none', 'widget_type' => 'date', ), ); \Form::getInstance() ->input_inline_start() ->form_schema($init) ->input_submit(' 搜索', ' class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"', 'class="layui-btn layui-btn-primary"') ->input_inline_end() ->form_class(\LayuiForm::form_class_pane) ->form_method(Form::form_method_get) ->create();
table表单
array ( 'title' => '主键', 'name' => 'id', 'description' => '主键', 'enum' =>array(), 'type' => 'hidden', 'widget_type' => '', ), 'name' =>array ( 'title' => '配置名称', 'name' => 'name', 'description' => '配置名称', 'enum' =>array(), 'type' => 'text', 'widget_type' => '', ), 'description' =>array ( 'title' => '配置描述', 'name' => 'description', 'description' => '配置描述', 'enum' =>array(), 'type' => 'text', 'widget_type' => '', ), 'input_type' =>array ( 'title' => '表单类型', 'name' => 'input_type', 'description' => '表单类型', 'enum' =>array ( 'hidden' => '隐藏域', 'select' => '下拉', 'radio' => '单选按钮', 'text' => '文本', 'textarea' => '多行文本', 'file' => '上传', 'none' => '非表单', 'editor' => '富文本', 'checkbox' => '复选框', 'date' => '日期', ), 'type' => 'select', 'widget_type' => '', ), 'created' =>array ( 'title' => '创建时间', 'name' => 'created', 'description' => '创建时间', 'enum' =>array(), 'type' => 'none', 'widget_type' => 'date', ), 'modified' =>array ( 'title' => '修改时间', 'name' => 'modified', 'description' => '修改时间', 'enum' =>array(), 'type' => 'none', 'widget_type' => 'date', ), 'deleted' =>array ( 'title' => '删除标记', 'name' => 'deleted', 'description' => '删除标记', 'enum' =>array ( 0 => '未删除', 1 => '已删除', ), 'type' => 'none', 'widget_type' => '', ), ); $form_data=array ( 0 => array ( 'id' => 73, 'name' => 'solution_introduction', 'value' => '111', 'description' => '解决方案介绍', 'input_type' => 'textarea', 'created' => '2018-12-07 11:44:40', 'modified' => '2022-03-08 00:32:08', 'deleted' => 0, ), 1 => array ( 'id' => 72, 'name' => 'tese_product_introduction', 'value' => '222', 'description' => '特色产品介绍', 'input_type' => 'textarea', 'created' => '2018-12-07 11:43:52', 'modified' => '2022-03-08 00:32:09', 'deleted' => 0, ), 2 => array ( 'id' => 71, 'name' => 'new_product_introduction', 'value' => '333', 'description' => '新产品介绍', 'input_type' => 'textarea', 'created' => '2018-12-07 11:41:37', 'modified' => '2022-03-08 00:32:09', 'deleted' => 0, ), 3 => array ( 'id' => 70, 'name' => 'site_pinterest', 'value' => '', 'description' => 'Pinterest堪称图片版的Twitter链接', 'input_type' => 'text', 'created' => '2018-11-19 11:48:12', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ), 4 => array ( 'id' => 69, 'name' => 'site_twitter', 'value' => '', 'description' => 'Twitter(非官方汉语通称推特)链接', 'input_type' => 'text', 'created' => '2018-11-19 11:47:04', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ), 5 => array ( 'id' => 68, 'name' => 'site_facebook', 'value' => '', 'description' => 'Facebook(脸书)链接', 'input_type' => 'text', 'created' => '2018-11-19 11:46:07', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ), 6 => array ( 'id' => 67, 'name' => 'site_google_plus', 'value' => '', 'description' => 'Google+SNS社交网站链接', 'input_type' => 'text', 'created' => '2018-11-19 11:45:26', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ), 7 => array ( 'id' => 66, 'name' => 'site_linkedin', 'value' => '', 'description' => 'LinkedIn领英链接', 'input_type' => 'text', 'created' => '2018-11-19 11:43:53', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ), 8 => array ( 'id' => 65, 'name' => 'site_livechat_code', 'value' => '', 'description' => 'livezilla在线客服代码', 'input_type' => 'textarea', 'created' => '2018-11-15 16:45:15', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ), 9 => array ( 'id' => 64, 'name' => 'site_skype', 'value' => '', 'description' => '联系skype', 'input_type' => 'text', 'created' => '2018-11-15 16:44:40', 'modified' => '2019-04-27 14:08:07', 'deleted' => 0, ) ); \Form::getInstance() ->table('扩展配置', '', 'site_config', $form_init, $form_data) ->create();
以上是"如何使用PHP实现动态表单生成工具"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
表单
时间
类型
支持
配置
用户
链接
工具
姓名
生成
密码
用户名
邮箱
链式
代码
文本
篇文章
动态
主页
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
4u服务器最大支持多少盘位
软件开发公司生存发展
查看服务器ip指令
网络安全法的总方针是
数据库操作主要有数据查询及更改
程序员如何维护网络安全
关于互联网科技发展 论文
天山固网杯网络安全技能知识
南通尽在网络技术
软件开发评审规范
医保数据库操作
山东淄博软件开发培训公司
迷你世界网络安全知识
软件开发及销售工作内容
软件开发培训学校天气预报
楚雄软件开发费用
镇江企业网络安全准入控制供应商
服务器怎么安装管理软件
银联云商贷软件开发公司
阿里云服务器被锁定怎么解锁
网络安全上游
京东云用的什么数据库
储存文档使用什么数据库
软件开发项目交流会
数据库的数据类型有数组吗
网络黑客如何攻击公司服务器
南通尽在网络技术
网络技术工作汇报
数据库连接用户名口令无效
手机软件开发的自学书籍