处理PHP / CodeIgniter表单中的字段并存储在MySQL中的附加信息

时间:2016-01-20 19:13:13

标签: php mysql forms codeigniter

我正在为住宅建筑公司制作表格 - 用户可以指定他们在家中的选项。我将表格(formID,姓名,地址,电话等)中的一般信息存储在名为“designForm'”的表格中。

我还有另一张名为' designOptions'保存所有可用于家庭的选项(optionID,optionLocation,optionName,optionDescription)。

还有一个名为' FormOptions'这将保留表单上选择的每个选项的记录(formID,optionID)

在表单上,​​每个选项都由一个复选框表示,其值设置为optionID。某些选项复选框会在检查时显示其他输入或选择字段。其他信息始终相同。有时它的天花板高度,有时它可能是淋浴大小或其他东西。以下是一些例子。

<span class="additional-info-wrap">
  <label class="checkbox-inline">
    <input type="checkbox" name="options[]" value="38">Whirlpool Tub
  </label>
  <div class="additional-info hide">
    <select class="form-control" name="masterBathWhirlpoolSize">
      <option value="None Specified">None Specified</option>
      <option value="3'x5'">3'x5'</option>
      <option value="3'x6'">3'x6'</option>
      <option value="4'x6'">4'x6'</option>
      <option value="5'x5' Corner Unit">5'x5' Corner Unit</option>
    </select>
  </div>
</span>
<span class="additional-info-wrap">
  <label class="checkbox-inline">
    <input type="checkbox" name="options[]" value="39">Shower / Tub
  </label>
  <div class="additional-info hide">
    <select class="form-control" name="masterBathTubSize">
      <option value="None Specified">None Specified</option>
      <option value="3'x5'">3'x5'</option>
      <option value="3'x6'">3'x6'</option>
    </select>
  </div>
</span>
<span class="additional-info-wrap">
  <label class="checkbox-inline">
    <input type="checkbox" name="options[]" value="46">Dining Room
  </label>
  <div class="additional-info hide">
    <input type="number" name="roomsDiningHeight" placeholder="Ceiling Height" class="form-control" disabled="">
  </div>
</span>
<span class="additional-info-wrap">
  <label class="checkbox-inline">
    <input type="checkbox" name="options[]" value="47">Family Room / Great Room
  </label>
  <div class="additional-info hide">
    <input type="number" name="roomsFamilyHeight" placeholder="Ceiling Height" class="form-control" disabled="">
  </div>
</span>

使用CodeIgniter,我将基本表单数据插入到&#39; designForm&#39;字段,获取formID,然后使用以下内容处理options数组:

            $options = $this->input->post('options');

            foreach ($options as $option ){
                $option_data = array(
                  'optionID' =>($option),
                  'formID' =>($form_id)
                );
            }

我的问题是:当用户选中复选框时,处理其他信息的最佳方法是什么?我要求在HTML(多维数组?)中命名字段的最佳方法,处理PHP / CodeIgniter中的字段,然后将它们存储在MySQL数据库中。

我希望能够在&#39; FormOptions&#39;中存储其他信息字段的名称和价值。表,但我不确定这是否有意义,或者我将如何去做。这些字段中的信息确实适用于特定选项,因此我不相信将它们存储在“设计形式”中是有意义的。表

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,就像你的问题一样:

我的表格是N个字段......我永远不知道他们需要发送什么......

我将我的选项和复选框作为多维数组。

后来我使用以下方式从表单中获取数据:

$formData = $this->input->post();

结果将是包含表单中所有POSTED数据的数组。然后,您可以在控制器或对象中管理您需要发送,数据库或电子邮件的方式。