文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-29 12:01

关注

小编给大家分享一下如何使用PHP实现动态表单生成工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

表单包含多种input类型,包括 hiiden类型 ,text类型,radio类型,checkbox类型,textarea类型,file类型,select类型等基础类型,手写表单就是累耗时耗力开发销量太低而且代码量大了还容易写出bug,每个页面的表单遇到改动的时候恨不得长十双手去改,于是我自己开发了一个php写的表单生成工具,在业务逻辑通过配置或者链式操作去初始表单结构和数据,不管有多少页面都只需要通过配置下就行,我写的这个表单工具 支持块表单,行内表单,table类型表单,支持表单美化 默认是layui效果,也支持jquery控制表单行为,只需要引入layui样式和js即可。在github主页demo目录也提供了示例代码运行查看效果,

Form介绍

使用php编写的html表单生成工具,没有任何依赖可独立使用,支持链式操作和配置创建表单,支持表单美化(默认为layui风格)

特点

项目主页链接

github: https://github.com/mgckid/form

gitee:https://gitee.com/mgckid/form

安装方法

composer require mgckid/form

快速使用

链式操作创建块表单

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

<?phprequire __DIR__ . '/../src/Form.php';Form::getInstance()    ->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();?>

数组配置创建块表单

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

<?php  require __DIR__ . '/../src/Form.php';            $init = array(                0 => 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();

行内表单

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

<?php  require __DIR__ . '/../src/Form.php';      $init = array(                0 => 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('<i class="layui-icon"></i> 搜索', ' 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表单

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

<?php  require __DIR__ . '/../src/Form.php';           $form_init = array (                'id' =>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实现动态表单生成工具”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯