我正在为住宅建筑公司制作表格 - 用户可以指定他们在家中的选项。我将表格(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;中存储其他信息字段的名称和价值。表,但我不确定这是否有意义,或者我将如何去做。这些字段中的信息确实适用于特定选项,因此我不相信将它们存储在“设计形式”中是有意义的。表
答案 0 :(得分:0)
我解决了这个问题,就像你的问题一样:
我的表格是N个字段......我永远不知道他们需要发送什么......
我将我的选项和复选框作为多维数组。
后来我使用以下方式从表单中获取数据:
$formData = $this->input->post();
结果将是包含表单中所有POSTED数据的数组。然后,您可以在控制器或对象中管理您需要发送,数据库或电子邮件的方式。