如何设计动态表单

问题描述

公司前辈要我为动态设计一个动态表单,他稍微和我说了一下,但我不是很了解他的意思不知道哪位仁兄做过这方面的研究,帮我解决下问题。比如说我 有个界面要出售电脑:电脑有不同的档次。我要在界面实现能够动态的为我的电脑档次增加 属性。如我单机”添加属性“按钮,就能显示一个对话框出来让我输入 属性的名称,字符类型,控件类型(如:是下拉列表还是 单选框等。还要考虑到下拉列表关联到的是数据库中其他表的属性(如 usb型号))高档电脑能够添加一个USB视频设备 的属性等,或则提供修改等。他说大概要这几个表 如 :模板表:存放不档次电脑的共同属性。如档次1:CPU MAINBOARD RAM 档次2 CPU MAINBOARD RAM USB视频设备 硬盘属性表:存放不同字段的信息,如 CPU 属性的类型 长度 控件类型(表单类型) label:界面显示名称 值表:存放具体的cpu 型号 主板型号 价格 等信息。通过这些表如果做到动态修改表单呢,这些表要如何关联 设计呢,中间有没有缺少其他的表,请高手帮我解惑啊 !!! 问题补充:可能是我的问题没有表述清楚把,。把jquery动态生成表但是简单,我纠结的问题是 比如说 你要为 档次1的电脑设备 添加一个新的属性 硬盘,你总部可能去修改数据的表把, 所以我的问题应该是 如何通过上面那个3个表 建立关联,能够满足 修改 ,添加 不同档次电脑的属性。归根到底 就是:如何建立数据库表,使能够完成某一产品 增加 修改 它的属性。

解决方案

引用一句话:为档次1的电脑 添加一个属性 :硬盘通过上面三张表 如何实现在js里(jquery神马的也是js……)的数据结构原则上差不多是这样的:levels = ['档次1','档次2','档次3'];properties = [];properties['档次1'] = ['硬盘','显卡','CPU','内存条',...];properties['档次2'] = [...]...values = [];values['硬盘'] = ['250G','320G','500G','1T',...];values['显卡'] = [...];...这样不就能够级联了么……至于数据库表差不多一样,就是属性表有个外键指向档次表,而值表有个外键指向属性表。如果不同档次还有不同值的话,那值表还可以加个外键指向档次表,就是有两个外键,相似js可以是这样的: values['硬盘']['档次1'] = ['250G','320G','500G','1T',...];
解决方案二:
设计一张表用来存动态表单的表名及基本信息,一张表用来存动态表单的字段信息,多张动态表对应生成的动态表单.后面的多张指动态生成的表.以上方案完全可行,以前项目中做过类似的东西.当时是用动态生成工作流的申请表单.
解决方案三:
这个我接触过和你说的差不多类型的需求,你可以将所有类型的电脑的属性综合在一起,也就是说品牌1和品牌2的属性是他们两个品牌属性的总数,但是在赋值的时候,你不一定要每一个属性都有值啊,如果获取的是品牌1,就拿在页面上显示这几个属性,获取的是品牌2,在页面上就显示另外几个属性,这样的弊端就是如果数据量比较大,占用数据库的空间比较大,不过这样解决你针对某一个品牌添加属性的问题简单了很多啊, 愚见,仅供参考!
解决方案四:
这个我以前做过一个,用的是两张表,a表(aid--主键,属性1,属性2,属性3...),b表(bid,aid,属性名,属性类型,属性校验规则,属性值),a表中的一条记录和b表中的多条记录组成一条完整的设备记录。4个界面完成了30多类,50多种设备的增删改查。
解决方案五:
……数据库建表伪码:档次表( id int PK, name varchar);属性表( id int PK, name varchar, 档次_id FK ref(档次表.id));值表( id int PK, name varchar, 属性_id FK ref(属性表.id));基本就这样了。
解决方案六:
用 fmjsjx 的方法 我觉得因该在档次表和属性表之间还应该有张电脑表,不然客户买什么呢?档次还是属性?电脑表的外键指向档次表,属性表外键指向电脑表
解决方案七:
就是说设定页面的元素是从数据库里读出来的嘛
解决方案八:
用jquery吧。没纯js麻烦
解决方案九:
基本两个思路:1.使用DOM、Javascript、AJAX: 每做一步都用AJAX获取数据,返回用户选择,再通过Javascript动态生成表单……周而复始;2.使用DOM、Javascript但不用AJAX: 一开始把数据都加载到页面的Javascript中,用户操作时直接通过各种选项用Javascript动态生成表单。其实还可以1和2结合使用,不过本人个人倾向于第二个思路。具体实现要看你的具体需求,这里你写的不是很清楚,可一个你个参考: 单击“添加属性”可以选择弹出框(用DIV或其他Dialog控件实现)、也可以直接多出一行,有一个文本框或下拉列表选名称(建议多用下拉列表),值的选项可以直接关联,应为是要交给用户选择的。选完之后可以有“完成”或“取消”,完成的也可以删除。这些用Javascript都可以实现,不是很难,就是麻烦点而已。

时间: 2024-10-22 09:07:51

如何设计动态表单的相关文章

ASP.NET MVC 2生成动态表单的一种最简单的思路

在BPM.OA等系统中,都会存在一个表单设计器.有些是通过操作gridview来完成一个表单的设计:有些是通过类似VS拖拽的方法完成一个表单的设计.很明显后面一种优越于前面一种.无论是哪种,最后都会产生一些XML之类的表单结构的数据. 这篇文章将讲述,在表单设计器设计好表单之后,在ASP.NET MVC中如何将表单结构的xml转换成实际应用系统中的表单.看下面一个xml文件,我们假设它是由一个表单设计器设计出来的. <?xml version="1.0" encoding=&qu

asp.net 动态表单之数据分页_实用技巧

但是问题来了,不同科系的同学的科目是不一样的,那么我们在数据库设计的时候通常是把学生.某科成绩作为一条记录,那么这个时候我们就需要做一个行转列的逻辑处理了. 解决方法: 使用GridView来生成表单,这个实现起来会比较麻烦,如果要在列表里面显示链接就更不可能了: 生成html再输出到页面中,这个实现起来比较灵活.方便: 基本功能点: 动态生成表头: 数据进行分页: 查询数据: 对每个成绩进行超链接,查看明细:  页面代码 复制代码 代码如下: <div id="dataDiv1"

一起谈.NET技术,ASP.NET MVC 2生成动态表单的一种最简单的思路

在BPM.OA等系统中,都会存在一个表单设计器.有些是通过操作gridview来完成一个表单的设计:有些是通过类似VS拖拽的方法完成一个表单的设计.很明显后面一种优越于前面一种.无论是哪种,最后都会产生一些XML之类的表单结构的数据. 这篇文章将讲述,在表单设计器设计好表单之后,在ASP.NET MVC中如何将表单结构的xml转换成实际应用系统中的表单.看下面一个xml文件,我们假设它是由一个表单设计器设计出来的. <?xml version="1.0" encoding=&qu

设计注册表单时关于密码遮蔽问题的探讨

摘要: 很实用的一篇关于密码遮蔽问题的探讨,翻译贡献给大家,希望对大家在设计注册表单时有所启示. 密码遮蔽是一种很老做法,通常用于注册和登录的表单,用来防止窥探者看到用户的 很实用的一篇关于密码遮蔽问题的探讨,翻译贡献给大家,希望对大家在设计注册表单时有所启示. 密码遮蔽是一种很老做法,通常用于注册和登录的表单,用来防止窥探者看到用户的密码.尽管密码遮蔽是很好的保护安全的做法,它仍可能危及到注册表单的体验.当用户注册时,他们期待填写一个无争议.没有后顾之忧的表单,而密码遮蔽会起到反作用. 一.适

CSS网页设计教程:表单Button的Outline

文章简介:CSS网页设计教程:表单Button的Outline. outline的使用,大家都喜欢在reset样式表中直接重置: * {   outline: none; } Eric Meyers在他的CSS Reset是这样重置的: /* remember to define focus styles! */ :focus {     outline: 0; } 这些方法大家都可以说常见了.可是有一点可能大家还是不太清楚--outline在表单的button中使用时,在firefox浏览器下

基于动态表单的Java不确定字段数报表项目实现

最近在一个项目的实施过程中,由于客户是国内该行业业务的领导者,业务表格并没有真正的确定,一直在不断的完善.所以程序的业务表单一直被客户牵制,一直跟着业务更改,要想非常出色的支撑整个项目和实现真正意义上的业务表单与整个项目松耦合集成才能达到最好的实施效果和最高的开发效率.经过与公司总监.总工程师多次探讨,决定开发动态表单插件,以满足客户业务表格不断变化的需求. 动态表单插件,即为由客户确定业务表格,通过插件录入到动态表单核心程序,生成业务表单. 具体实现思路: 1.手工制作带有特殊标记的html页

在Activiti中集成JPA(解决动态表单生成的大量数据)

1. 为何集成JPA 在<比较Activiti中三种不同的表单及其应用>一文中介绍了不同表单的特点以及表现形式,相信这是每个初学者都会面临表单类型的选择. 如果选择了使用动态表单那么将面临一个比较"严峻"的问题--大数据量,我们知道动态表单的内容都保存在一张表中(ACT_HI_DETAIL),我们也清楚动态表单中每一个Field都会在该表中插入一条记录,假如一个流程共有20个字段,这个数据量大家可以计算一下,每天多少个流程实例,每个月.每年多少? 日积月累的大数据会影响系统

web设计 提交表单 action method

问题描述 web设计 提交表单 action method 表单中设计,form中action为loginaction,同时,在提交按钮中定义action为login,struts.xml中设计,,而在loginAction中只设计了login()方法. 现在我进行登录操作,正常.但客户使用activex进行自动登录时,正常获取用户ID和密码后,出现调用为不存在的方法loginAction()的NoSuchMethodExp. 请问是什么原因造成这种异常,如何进行修正. activex自动登录,

用HTML设计的表单边框可以预览但打印不出来?

问题描述 用HTML设计的表单边框可以预览但打印不出来? 用HTML设计的申请表,预览时边框可以显示,但是打印不出来