2015-05-12 71 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); 
} 

希望它帮助:)