CakePHP:多选输入数据插入数据库

时间:2015-05-12 12:52:59

标签: php cakephp

我的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); 返回上次选择的输入。 但我想要所有人。

3 个答案:

答案 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);
}

希望有所帮助:)