关于php:php编写的开源动态表单生成工具

38次阅读

共计 7783 个字符,预计需要花费 20 分钟才能阅读完成。

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

Form 介绍:

应用 php 编写的 html 表单生成工具,没有任何依赖可独立应用, 反对链式操作和配置创立表单,反对表单丑化(默认为 layui 格调)

特点:

  1. 没有任何依赖可独立应用
  2. 反对链式操作创立表单
  3. 反对数组配置创立表单
  4. 反对块表单
  5. 反对行内表单
  6. 反对 table 表单
  7. 反对表单丑化 (默认为 layui 格调) 且不便扩大

我的项目主页链接:

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

装置办法:

composer require mgckid/form

疾速应用:

链式操作创立块表单

<?php
require __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
  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
  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
  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();

正文完
 0