2013-11-26 34 views
0
<fieldset> 
    <legend>Available Areas</legend> 
    <select id="availableAreas"> 
     <?php 
     $sql = "SELECT * FROM workArea"; 
     $result = $db->query($sql); 

     while ($row = $result->fetch_assoc()) { 
      $id = $row['id']; 
      $area = $row['name']; 
      echo "<option value='$id'>$area</option>"; 
     } 
     ?> 
    </select> 
    <input id="addArea" type="button" value="Add area" /><br /> 
    <select id="workAreas" style="min-width: 200px" required multiple name="workAreaId"></select> 
</fieldset> 

上面的代碼產生這樣的輸出:發送多個<option> s到形式

enter image description here

我沒有把的JavaScript作爲它的問題不相關,但點擊「添加區域」會將該區域添加到<select>元素(下拉下方的多個列表)。

當用戶提交表單時,我需要發送用戶添加到列表中的所有<option>。有什麼辦法可以做到這一點?

感謝

+0

那麼,你不能只是用你需要的數據填寫一個禁用的文本區域? – Peon

+0

@DainisAbols我不認爲HTML發送禁用的表單數據。可能是錯誤的,否則這是一個很好的建議。 – jskidd3

+0

如果您有多個'select'元素,則所有選定的元素將被提交給服務器,但應該選擇項目。 –

回答

2

假設你正在使用jQuery:

$('#yourForm').submit(function() { 
    $('#workAreas option').prop('selected', 'selected'); 
}); 

這應該在你的多重選擇所有項目的表格提交時選擇。

另一種選擇是爲每個選項添加一個隱藏的輸入字段。當您將[]添加到字段的名稱時,它將作爲數組在服務器端提供。

<input type="hidden" name="workareas[]" value="X" /> 
+0

非常完美,非常感謝傑拉德! – jskidd3