首页 > 解决方案 > 我正在尝试将复杂复选框表单的值存储在 mysql 数据库中

问题描述

我有一个多部分的 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;" width="15%">
     <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" width="55%" style="vertical-align: middle">Inverter</td>
   <td class="minusTData text-center" style="vertical-align: middle;" width="10%" 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;" width="10%" id="ps-inverter4" data-id="id-inverter4">
     <span class="fa fa-plus fa-lg" style="visibility: hidden;"></span>
   </td>
   <td class="checkTData" width="10%">
     <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>

标签: phpjquerymysqlformscheckbox

解决方案


你可以做一张通用的桌子来保存moving_id、姓名、电子邮件、发件人、去……和几个分开的桌子来保存选项,这里是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 的简单选择选项


推荐阅读