当前位置: 首页 > 知识库问答 >
问题:

java - springboot+vue, mysql怎么设置字段存储form动态表单?

荆亦
2023-12-20

需求: 每个页面进去是一个不一样的form表单,form中的item属性都是自定义不确定的
问题: springboot+vue, mysql怎么设置字段存储form动态表单?

  1. 使用json记录整个form
  2. 使用varchar记录整个form
  3. 使用text 记录整个form
  4. form中的item分开记录,如type:varchar;title:varchar;value:varchar;......

image.png

var form = [  {    type: "input",    field: "default",    title: "update1",    value: "default",    onChnage: (val) => {      console.log("val", val);    },  },  {    type: "input",    title: "商品名称",    field: "goods_name",    value: "iphone 7",    col: {      span: 12,      labelWidth: 150,    },    props: {      type: "text",    },    validate: [      { required: true, message: "请输入goods_name", trigger: "blur" },    ],  },];

共有2个答案

夏侯彬郁
2023-12-20

当然用JSON。
有个示例供参考:https://github.com/yji234/dynamic-form-pc

其实就是把每个组件描述出来,然后前端按这种逻辑展示,后端按这种逻辑校验。当然还有表单的设计

[    {        id: '2',        ruleName: '提示文字',        ruleValue: 'placeHolder',        ruleType: 'text',        defaultValue: '',        placeHolder: '请输入',        topTip: '最多50字',        bottomTip: '内容最多可填写1000字',        checkboxLabel: ''    },    {        id: '3',        ruleName: '必填',        ruleValue: 'isRequired',        ruleType: 'checkbox',        defaultValue: '',        placeHolder: '',        topTip: '',        bottomTip: '',        checkboxLabel: '是否必填'    },]
哈雅珺
2023-12-20

这个问题涉及到前端(Vue.js)和后端(Spring Boot)以及数据库(MySQL)之间的交互。你提到了四种可能的解决方案,我会一一分析它们的优缺点,以帮助你选择最适合你的方案。

  1. 使用json记录整个form
* 优点:可以很方便地存储和解析动态表单。前端只需要将表单数据转化为JSON格式,然后发送到后端。后端也可以很方便地将JSON数据存储到数据库中。* 缺点:如果表单数据非常大,可能会超过JSON的解析限制。此外,如果数据库字段类型是固定的,可能无法很好地支持动态表单。
  1. 使用varchar记录整个form
* 优点:简单易行,只需要将整个表单数据转化为字符串格式,然后存储到数据库中。* 缺点:无法很好地支持动态表单。如果表单数据非常大,可能会超过VARCHAR的长度限制。此外,如果需要查询表单数据中的特定字段,可能会比较困难。
  1. 使用text记录整个form
* 优点:可以存储更大的表单数据,对于动态表单的支持也比较好。* 缺点:如果需要查询表单数据中的特定字段,可能会比较困难。此外,如果表单数据非常大,可能会影响数据库的性能。
  1. 把form中的item分开记录
* 优点:可以很方便地查询和更新表单数据中的特定字段。对于动态表单的支持也比较好。* 缺点:需要手动处理表单数据的序列化和反序列化,可能会比较复杂。此外,如果表单数据中的字段非常多,可能会需要大量的数据库表字段。

根据你提供的需求和代码示例,我建议使用第四种方案,即把form中的item分开记录。这样既可以方便地查询和更新表单数据中的特定字段,又可以很好地支持动态表单。在前端,你可以将每个表单项序列化为一个对象,然后发送到后端。在后端,你可以将这些对象存储到数据库中,每个对象对应一个数据库记录。

 类似资料:
  • Framework7 可以很方便存储和解析表单的数据,特别是在 Ajax 加载的页面。并且,当你再次加载相同的页面之后,Framework7 可以自动帮你填充上次的内容! 启用表单自动存储 要启用表单自动存储功能,只需要: 在表单上增加一个 "store-data" class 在表单上增加一个 id 属性。如果没有 id, 无法正常工作的。 确保你的input都有 "name" 属性,没有nam

  • 问题内容: 我想在sql查询中更改表的动态名称。例如,我有下一个存储过程: 我需要在运行时更改 tableName ,我可以这样做吗?谢谢。 问题答案: 您必须使用动态SQL来准备和执行SQL字符串,以实现您所描述的内容。 在准备之前,必须将动态表名称(或列名称或SQL关键字等)内插到SQL字符串中。您不能将查询参数用于这些动态元素。 当您将表名称插入到SQL查询中时,请小心避免SQL注入漏洞。例

  • 问题内容: 如何为欧姆对象动态设置字段? 问题答案: 中的class方法为命名属性定义访问器和更改器方法: 因此,当您说时,您可以免费获得以下方法: 您可以像这样调用mutator方法: 如果您真的想说,那么可以在课堂上添加以下内容: 您可能还希望访问器版本保持对称:

  • 本文向大家介绍怎么解决vue动态设置img的src不生效的问题?相关面试题,主要包含被问及怎么解决vue动态设置img的src不生效的问题?时的应答技巧和注意事项,需要的朋友参考一下 这个 不明确,这个应该属于打包工具范畴,和 Vue 没多大关系。可以用一个很简单的例子证明,直接用 script 的形式引入vue,然后更改src的值看能不能访问,麻烦你们弄清楚其中的原理再来解决问题 为什么不把自己

  • 问题内容: 如何通过MySQL和PHP 进行设置? 我的代码: 问题答案: 除了修复/ gotcha之外,还可以通过要求数据库在查询中每年仅返回一次来保存数组查找,并使代码更简单: (您可能不需要假设这是一个数字年份,但是始终将HTML模板中包含的任何纯文本都用HTML转义是一种很好的做法。您可以定义一个名称较短的函数来减少输入。)

  • 目前的一个需求就是要用自定义表单收集数据! 这个需求还行,表结构是这样的 现在就是设计到收集数据这里,还要涉及到统计、报表、图标,这张表不知道怎么设计了,请大佬指教!