我的Multiselect输入代码是
<?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 :(得分:2)
我忘记添加multiple => true
。
答案 1 :(得分: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>
答案 2 :(得分:0)
要保存数据库中的多选值,请使用implode函数存储数组。
在控制器中:
if (!empty($this->data)) {
$this->data['Category']['name'] = implode(",",$this->data['Category']['name']);
$this->Category->create();
$this->Category->save($this->data);
}
希望有所帮助:)