2015-05-12 109 views
2

我多選輸入的代碼是CakePHP的:多選輸入數據插入到數據庫

<?php echo $this->Form->input('Dispensary.role.',array('options'=>$dispensary_users,'class'=>'form-control dispensary_users_dd','label'=>false,'style'=>'width:300px;','empty'=>'Select Users')); 
?> 

和生成的html代碼:

<select name="data[Dispensary][role][]" class="form-control dispensary_users_dd" style="width: 300px; display: none;" id="DispensaryRole"> 
    <option value="">Select Users</option> 
    <option value="9">Yashobanta</option> 
    <option value="80">Yash</option> 
    <option value="83">Ramesh</option> 
</select> 

但是,當我選擇所有用戶,並print_r($this->data); 返回最後選擇的輸入。 但我想要所有。

+0

建議 - 用php尤其是形成屬性一起學習基本的HTML,這將幫助你這樣的共同的東西, – Abhishek

回答

2

我忘了補充multiple => true

1

我不知道$this->Form->input(...);是如何工作的,因爲它並不重要。您只能選擇一個意見而不需要multiple屬性。

實施例通過w3schools.org:

<select name="cars" multiple> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 
0

爲了在數據庫中保存多個選擇值,使用implode函數來存儲數組。

在控制器:

if (!empty($this->data)) { 
    $this->data['Category']['name'] = implode(",",$this->data['Category']['name']); 
     $this->Category->create(); 
     $this->Category->save($this->data); 
} 

希望它幫助:)