我正在尝试将复杂复选框表单的值存储在 mysql 数据库中
Posted
技术标签:
【中文标题】我正在尝试将复杂复选框表单的值存储在 mysql 数据库中【英文标题】:I am trying to store the values of a complex checkbox form in mysql database 【发布时间】:2020-05-23 03:13:10 【问题描述】:我有一个多部分的 html 表单,我想将从该表单获取的数据发送到数据库。我的问题是表单的第二步,其中有多个带有多个复选框的选项卡。由于多个选项卡和许多复选框,我完全困惑如何创建此表单的架构。如何以有序的方式成功插入每个类别的数量和项目名称,以便我轻松获取每个条目的所有记录?每个部分都有 ID(1 到 4),每个项目都有一个 itemid。
这是表格的链接(只是为了清楚我的意思。检查表格的第 2 步)。 http://www.diggysmoving.com/get-free-quotes.php
这是我的架构:
CREATE TABLE `moving_entries` (
`moving_id` int(11) NOT NULL,
`phone` varchar(15) NOT NULL,
`full_name` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`moving_from` varchar(100) NOT NULL,
`moving_to` varchar(100) NOT NULL,
`type_from` varchar(100) NOT NULL,
`type_to` varchar(100) NOT NULL,
`living_room_items` text NOT NULL,
`bedroom_items` text NOT NULL,
`kichen_items` text NOT NULL,
`other_items` text NOT NULL,
`additional_items` text NOT NULL,
`required _services` text NOT NULL,
`move_date` varchar(100) NOT NULL,
`referral_code` varchar(50) NOT NULL,
`special_instruction` text NOT NULL,
`created` date NOT NULL,
PRIMARY KEY (`moving_id`);
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
以下是部分html代码
<tr id="id-inverter4">
<td class="timesTData text-center" style="vertical-align: middle;" >
<span class="opening" style="visibility: hidden;">(</span>
<span class="digit" style="visibility: hidden">1</span>
<span class="fa fa-times" style="visibility: hidden;"></span>
<span class="closing" style="visibility: hidden">)</span>
</td>
<td class="nameTData" style="vertical-align: middle">Inverter</td>
<td class="minusTData text-center" style="vertical-align: middle;" id="ms-inverter4" data-id="id-inverter4">
<span class="fa fa-minus fa-lg" style="visibility: hidden;"></span>
</td>
<td class="plusTData text-center" style="vertical-align: middle;" id="ps-inverter4" data-id="id-inverter4">
<span class="fa fa-plus fa-lg" style="visibility: hidden;"></span>
</td>
<td class="checkTData" >
<input type="checkbox" class="form-control checkBox inverter4" name="itemQuantities[]" title="Inverter" data-href="inverter4" data-tr="id-inverter4">
<input type="checkbox" name="itemIds[]" class="inverter4" value="60" style="display: none;">
<input type="checkbox" name="sectionIds[]" class="inverter4" value="4" style="display: none;">
</td>
【问题讨论】:
由于第 2 步的选项如此之多,并且没有选择限制,我会将它们分隔在不同的表中,其中行的 id 将为moving_id,稍后我可以轻松匹配当前的移动和客厅选项 我尝试创建不同的表来保存部分 ID 和项目 ID。但我仍然卡住了。我无法将它放在脑海中如何继续。 【参考方案1】:你可以做一个通用表来保存moving_id、name、email、from、to ...和几个单独的表来保存选项,这里是step2客厅的例子,你可以为卧室、厨房做同样的事情和其他
CREATE TABLE `living_room` (
`moving_id` int(11) NOT NULL,
`television` int(11) NOT NULL,
`tv_stand` int(11) NOT NULL,
`dvd` int(11) NOT NULL,
`decoder` int(11) NOT NULL,
`home_theatre` int(11) NOT NULL,
`subwoofers` int(11) NOT NULL,
`settee` int(11) NOT NULL,
`centre_table` int(11) NOT NULL,
`side_stool` int(11) NOT NULL,
`centr_rug` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
在这里我将所有选项设置为 (int) 因为是复选框,所以如果选中或不选中,您可以插入 1 或 0 此处的moving_id 将与您的总表中的moving_id 相同,而不是您可以匹配当前moving_id 的简单选择选项
【讨论】:
虽然这确实不起作用,但随着您对原始问题的评论,我能够想出一些东西。谢谢,为此我将您的答案标记为正确 @Atoms 很高兴为您提供帮助以上是关于我正在尝试将复杂复选框表单的值存储在 mysql 数据库中的主要内容,如果未能解决你的问题,请参考以下文章