CakePHP:多选输入数据插入数据库
CakePHP : Multiselect input data insert into database
我的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>
但是当我 select 所有用户,并且 print_r($this->data);
returns 最后 select 次输入。
但是我要全部。
我不知道 $this->Form->input(...);
的那个东西是怎么工作的,因为它不重要。没有 multiple
属性,您只能 select 一种意见。
示例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>
我忘了添加 multiple => true
。
为了在数据库中保存多个 select 值,使用 implode 函数存储数组。
在控制器中:
if (!empty($this->data)) {
$this->data['Category']['name'] = implode(",",$this->data['Category']['name']);
$this->Category->create();
$this->Category->save($this->data);
}
希望对您有所帮助:)
我的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>
但是当我 select 所有用户,并且 print_r($this->data);
returns 最后 select 次输入。
但是我要全部。
我不知道 $this->Form->input(...);
的那个东西是怎么工作的,因为它不重要。没有 multiple
属性,您只能 select 一种意见。
示例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>
我忘了添加 multiple => true
。
为了在数据库中保存多个 select 值,使用 implode 函数存储数组。
在控制器中:
if (!empty($this->data)) {
$this->data['Category']['name'] = implode(",",$this->data['Category']['name']);
$this->Category->create();
$this->Category->save($this->data);
}
希望对您有所帮助:)