【问题标题】:Dynamic form field creation and saving in database php mysql动态表单字段创建和保存在数据库php mysql中
【发布时间】:2014-07-06 10:07:28
【问题描述】:

我正在制作一个医疗软件,但我被困在了一个点上。我必须创建一个报告部分,用户将在其中填写患者的报告。主要问题是因为字段/列是可变的(更少/更多)。假设我在血液测试中填写表格,列选项不同,X 射线列也不同。

我已经创建了一个数据库,因此它将存储该测试 ID 和患者 ID 的选项值

CREATE TABLE IF NOT EXISTS `mp_tests_options` (
`test_optn_id` int(11) NOT NULL AUTO_INCREMENT,
`optn_test_id` int(11) NOT NULL,
`optn_patient_id` int(11) NOT NULL,
`test_optn_name` varchar(255) NOT NULL,
`test_optn_value` LONGTEXT DEFAULT NULL,
`test_optn_def_value` LONGTEXT DEFAULT NULL,  
PRIMARY KEY (`test_optn_id`),
INDEX (`optn_test_id`),
INDEX (`optn_patient_id`),
FOREIGN KEY (optn_test_id) REFERENCES mp_tests(test_id) 
ON UPDATE CASCADE ON DELETE   RESTRICT 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

但是我如何通过适当的验证为用户制作前端。我不想单独编写每个表单。

感谢您的宝贵时间。

【问题讨论】:

  • 我认为动态添加和删除列是非常糟糕的主意。为什么不创建对具有不同字段作为行的另一个表的引用?

标签: php mysql sql innodb


【解决方案1】:

为您想要的每种形式所需的列创建一个单独的表。

 _______________________________________________
|   formName  | fields                          |
|-----------------------------------------------|
| x-ray       |field1,field2,field3,field4      |
|-----------------------------------------------|
| bloodtest   |field1,field2,field3,field4      |
|_______________________________________________|

然后使用explode()将其转换为数组。 还要创建一个表,其中包含每个表单名称的可能字段。 只需在不需要的字段中插入空白即可。

【讨论】:

  • 我需要对那些进行适当的 javascript 验证,如何做到这一点。此外,如果某些字段依赖于其他字段 A,而字段 B 则取决于使用无线电选择的用途?
猜你喜欢
  • 2013-06-03
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2023-03-31
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多