开发背景:公司要求管理系统能够由管理员在前台页面管理系统表单,能够对表单进行增删改查基本操作,表单的各个字段都可以被修改、删除,可以添加新的字段,并且不影响系统正常运行,前台表单展示要由系统自动处理,因此准备实现系统自动生成表单功能。开发语言:PHP,数据库:MYSQL,系统框架:CodeIgniter,前台框架:Bootstrap.

  初期设想:因为要动态修改前台表单,所以要在数据库中存储表单的信息,建立数据表form_xxx存放xxx栏目下面的add_xxx页面的表单,数据库字段定义如下:

create table form_payment
(
id int not null auto_increment primary key comment 'id',
label char(20) not null comment '表单项目label,就是表单中的label标签的文本',
type char(10) not null comment '表单项目类型,比如input,select,textarea等',
name char(20) not null comment '表单项目的name属性值,input的name属性值',
length int not null comment '表单项目字段长度'
)engine=innodb default charset utf8;

在用户浏览add_xxx.php页面的时候,控制器调用xxx_model.php模型的form()方法从数据库中取得表单结构,可以在模型中生成表单,也可以在控制器里生成表单,然后传递这个表单给视图文件显示出来供用户使用,甚至可以直接让视图文件生成表单。但是个人觉得如果要做到数据传递和操作的方便,应该把表单表中的数据传递给视图,在视图中通过判断语句判断表单的类型,直接使用HTML代码来显示表单,虽然判断起来很麻烦,但是直接用HTML语言可以使页面更容易控制,也更美观。

  接下来,将按照上面的思路来实现这个模块的功能,进而对该文章进行不断的修改和补充。

  未完待续。。。。。。。。。。。。。。。。

基于PHP和mysql的自动生成表单的更多相关文章

  1. java自动生成表单简单实例

    数据库表设置 tb_form(form表单) 字段 类型 约束 说明 Id Int 主键 主键 Formid Varchar2(20) 唯一 Form表单id的值 Action Varchar2(20 ...

  2. yii2自动生成表单

    视图中: 1.要use的两个文件类 use yii\helpers\Html;   use yii\widgets\ActiveForm; 2.生成表单,以添加商品为例说明.注意红线区域:上传文件需要 ...

  3. 基于react hooks,antd4 配置生成表单并自动排列

    react后台项目,大多都是表单处理,比如下列4种常见1*n布局 (如果手工编码,大量的Row,Col, Form.Item的嵌套,排列,如果加上联动处理,代码将十分臃肿,不易维护) 一行一列 一行两 ...

  4. 关于Hibernate 连接mysql不能自动建表的问题

    最近看旧书,李刚那本<轻量级J2EE>在讲解hibernate的时候遇到一个问题,就是与mysql连接后,明明配置了自动建表,却老是建不了表,上网查了发现是方言的原因,到底什么是方言?这里 ...

  5. hibernate.hbm2ddl.auto=update不能自动生成表结构

    在写上篇文章<spring整合springmvc和hibernate>的时候,曾遇到一个问题 INFO: Server startup in 8102 ms Hibernate: inse ...

  6. 基于MATLAB2016b图形化设计自动生成Verilog语言的积分模块及其应用

    在电力电子变流器设备中,常常需要计算发电量,由于电力电子变流器设备一般是高频变流设备,所以发电量的计算几乎时实时功率的积分,此时就会用到一个积分模块.发电量计算的公式如下:Q=∫P. FPGA由于其并 ...

  7. hibernate如何配置自动生成表

    hibernate自动生成表有两种方法: 1.直接写代码,通过方法来创建数据库表. 2.通过 hibernate.cfg.xml配置标签来创建数据表. 下面依次实现: 1.直接写代码,通过方法来创建数 ...

  8. 利用powerDesigner15.1连接oracle数据库并自动生成表结构

    利用powerDesigner15.1连接oracle数据库并自动生成表结构 参考:http://blog.csdn.net/qq_24531461/article/details/76713802 ...

  9. 用Django自动生成表遇到问题

    因为以前在数据库中已经生成过Django 叫App01下的表,所以无法生成,在数据库中执行这个命令 DELETE FROM django_migrations WHERE app='App01';然后 ...

随机推荐

  1. MySQL AB复制

    http://tonychiu.blog.51cto.com/656605/326541

  2. hdu 1051Wooden Sticks

    #include<cstdio> #include<cstring> #include<algorithm> #define maxn 10000 using na ...

  3. ATR的基本结构与意义(无历史字符部分)

    Reset 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 96 复位应答 ATR TS( The Initial character ...

  4. 多线程 Worker Thread 模式

    Worker是“工人”的意思,worker thread pattern中,工人线程(worker thread)会一次抓一件工作来处理,当没有工作可做时,工人线程会停下来等待心得工作过来. Work ...

  5. Mysql 主从复制,读写分离设置

    一个简单完整的 Mysql 主从复制,读写分离的示意图. 1. 首先搭建 Mysql 主从架构,实现 将 mater 数据自动复制到 slave MySQL 复制的工作方式很简单,一台服务器作为主机, ...

  6. 【HDOJ】2802 F(N)

    找循环节水题.注意余数大于0. /* 2802 */ #include <cstdio> #include <cstring> #include <cstdlib> ...

  7. 【git】git常用命令简介

    使用Git也好长时间了,但一直没系统的学习过,现在总结以下工作中用到的,记录以下,以后忘记了可以来看看. 因为操作系统是Windows,所以将简单介绍一下通过git bash命令行的使用: 本文将不介 ...

  8. Linux环境下使用图形化界面的SVN客户端软件-RabbitVCS

    如果想在Linux环境下使用图形化界面的SVN客户端软件,那么RabbitVCS绝对是首选,可以媲美Windows环境下用的TortoiseSVN,甚至连操作都基本一样,所以强烈推荐给各位童鞋. Ra ...

  9. MFC对话框应用程序添加自定义消息

    1. 定义自定义消息 /** * \brief 消息测试 */ #define E6100_MSG_TEST          ( WM_USER + 1001 ) 2. 声明自定义消息处理函数 /* ...

  10. jsp+servlet 上传图片实例

    最近,在弄android小程序,现在需要做一个服务器后端,这里我下载了一个商城源码,想添加商品图片,这里在网上找了一个实例 引用: http://blog.csdn.net/shuwei003/art ...