2016-04-15 41 views
0

我有一個選項,該選項被添加到$這隻CakePHP的3 - 如果不進行選擇

<div class="input select"> 
    <label for="pilot-ratings">Pilot Ratings</label> 
    <select name="pilot_ratings" class="listbox" size="5" id="pilot-ratings"> 
     <option value="1">Habilitación de Vuelo Nocturno Local</option> 
     <option value="3">Habilitación Cat. II/Cat. III</option> 
     <option value="5">Habilitación de Remolque de Planeador</option>      
    </select> 
</div> 

當窗體(使用表單輔助函數生成的)這個選擇輸入選擇未提交 - >請求 - >數據[ 'pilot_ratings']。

有沒有辦法強制提交所有的選擇輸入的選項,每次不管選項選擇或沒有?

謝謝。

問候。

+0

你能解釋爲什麼你需要所有的 ..? – Confused

+0

這個想法是,用戶有兩個列表框。一個具有「可用」選項,另一個具有「選擇」選項。然後,在提交表單時,應該在數據庫中更新選擇的選項。另一種方法是使用複選框列表,但對用戶來說看起來不那麼友好。 – user1077915

回答

1

你如何在選擇框之間移動選項?

要自動提交選項,您需要將selected="selected"屬性添加到<option>元素。要在形式的選擇框提交許多選擇你需要添加multiple<select>元素

,如果你想自動提交的頁面加載列表中的所有選項,那就需要像這樣

 <select name="pilot_ratings" class="listbox" size="5" id="pilot-ratings" multiple> 
     <option value="1" selected="selected">Habilitación de Vuelo Nocturno Local</option> 
     <option value="3" selected="selected">Habilitación Cat. II/Cat. III</option> 
     <option value="5" selected="selected">Habilitación de Remolque de Planeador</option>      
    </select> 

<?= $this->Form->input('pilot_ratings',[ 
    'type' => 'select', 
    'class' => 'listbox', 
    'size' => 5, 
    'id' => 'pilot_ratings', 
    'multiple' => 'multiple', 
    'options' => [ 
     ['name' => 'Habilitación de Vuelo Nocturno Local', 'value' => '1', 'selected' => 'selected'], 
     ['name' => 'Habilitación Cat. II/Cat. III', 'value' => '2', 'selected' => 'selected'], 
     ['name' => 'Habilitación de Remolque de Planeador', 'value' => '5', 'selected' => 'selected'] 
    ] 
]); ?> 

還沒有測試的形式助手代碼的語法,但它是正確的觀念:

這可以通過使用CakePHP的表單助手等來達到的。

我剛纔想到的一件事就是如何在表單提交後閱讀數據。這些數據將仍然像提交:

pilot_ratings=1 
pilot_ratings=3 
pilot_ratings=5 

默認情況下,我認爲(havnt實際測試過這一點)$this->request->data['pilot_ratings'];將只持有其中的一個值,無論是第一單或因爲它保持overwritting本身是最後一個。

如果是這樣的話,你可能需要改變的形式方法來獲取

,然後從中提取查詢字符串的所有值,你可以得到:

$this->request->here(); 
+0

謝謝。 我現在所做的是選擇所有使用jQuery的選項(我已經添加了一個on_click事件來調用一個JavaScript函數)以前的表單提交。將select作爲multiple => true使表單在請求數據內以數組的形式提交值。 – user1077915