目录
表单包含多种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
快速使用
链式操作创建块表单
<?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();
以上就是PHP实现动态表单生成工具详解的详细内容,更多关于PHP表单生成工具的资料请关注其它相关文章!
© 版权声明
THE END
暂无评论内容