2016-01-20 25 views
0

我正在爲一個家庭建築公司的表單工作 - 用戶可以在他們的家中指定他們想要的選項。我將表單(formID,姓名,地址,電話等)中的一般信息存儲在名爲'designForm'的表中。處理PHP/CodeIgniter格式的附加信息表單並存儲在MySQL中

我有另一個名爲'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> 

使用笨,我插入基本形式的數據到「designForm」字段,搶formID,然後處理選項陣列以下:

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

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

我的問題是:什麼處理用戶選中複選框時顯示的附加信息的最佳方式是什麼?我正在尋求命名HTML(多維數組?)中的字段的最佳方法,處理PHP/CodeIgniter中的字段,然後將它們存儲在MySQL DB中。

我希望能夠在'FormOptions'表中存儲額外的信息字段的名稱和值,但我不確定這是否合理,或者我會如何去做。這些字段中的信息確實適用於特定的選項,所以我不認爲將它們存儲在'designForm'表中是有意義的。

回答

0

我解決的問題接近這個喜歡你的問題是這樣的:

我的形式是N場......我從來不知道我需要他們的送什麼......

我做了我的選擇和複選框作爲多維數組。

後來我開始使用從表單中的數據:

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

結果將是和數組與形式的所有發佈的數據。然後,您可以在控制器或對象中管理您需要發送,數據庫或電子郵件的方式。