千家信息网

如何使用PHP实现动态表单生成工具

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,小编给大家分享一下如何使用PHP实现动态表单生成工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!表单包含多种input类
千家信息网最后更新 2024年11月19日如何使用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安全错误 数据库的锁怎样保障安全 聊城软件开发电话 天猫入驻商品数据库 软件开发人工费用标准 青年政治学院网络安全专业 代理服务器 隐藏ip 河南信息工程学校网络技术 云南医院时间频率同步服务器 数据库创建完视图为什么不显示 我国的网络安全法是哪年通过的 软件开发服务的增值税率 关于网络安全手抄报内容文字 苏州科远软件开发有限公司 学校国家网络安全日宣传材料 哈工大网络安全联合实验室 数据库基本结构是三个层次 惠尔顿网络安全审计系统v9 淮安固态硬盘服务器 计算机网络技术协议是什么 现在lol是不是服务器有问题啊 上海网络技术开发优点 神圣导航软件开发 滁州直播平台软件开发定制公司 河南新联华网络技术 数据库update的效率 宇视存储服务器时间设置 域名和服务器备案怎么通过 新多市嘟嘟网络技术有限公司 数据库安装速达软件 蜀山网络安全考试学院 ncre 数据库技术
0