在我的视图中,我有一个表单选择多个框,其中我使用选择下拉列表和一个按钮添加项目。
这是在向其添加3个项目之后选择多个框的代码。
<label for="nombresFamilia" class="col-md-4 control-label"></label>
<div class="col-md-6">
<select multiple id="nombresFamilia" name="nombresFamilia[]" class="form-control">
<option value="CABLES">CABLES</option>
<option value="PCR">PCR</option>
<option value="POSTES">POSTES</option>
</select>
</div>
提交表单信息后,我想将项目保存在选择多个数组中。这是我控制器中的代码。
function add()
{
.
.
.
$this->form_validation->set_rules('nombresFamilia[]','NombresFamilia');
if($this->form_validation->run())
{
.
.
.
$params_familia = $this->input->post('nombresFamilia[]');
}
}
但是,当我尝试var_dump数组
时<?php
echo "<pre>";
var_dump($params_familia);
echo "</pre>";
?>
我收到消息:"未定义变量:params_familia"。
我在做什么错?
您可以预选选择的选项,做类似此类的操作
查看
<select name="nombresFamilia[]" class="" multiple="multiple">
<option value="CABLES" selected="selected">CABLES</option>
<option value="PCR" selected="selected">PCR</option>
<option value="POSTES" selected="selected">POSTES</option>
</select>
控制器
$nombresFamilia = $this->input->post('nombresFamilia');
// remove [] in nombresFamilia
echo "<pre>";
var_dump($params_familia);
echo "</pre>";
生产
Array
(
[0] => CABLES
[1] => PCR
[2] => POSTES
)
复选框称为数组,下拉列表不称为数组。在下拉或LT中选择>仅返回一个值。如果您想获得所选项目的价值。将您的选择元素命名为
<select multiple id="nombresFamilia" name="nombresFamilia" class="form-control">
<option value="CABLES">CABLES</option>
<option value="PCR">PCR</option>
<option value="POSTES">POSTES</option>
</select>
,然后将值作为
获取$params_familia = $this->input->post('nombresFamilia');
如果要多个选择,则创建复选框而不是下拉菜单为
<input type="checkbox" name="nombresFamilia[]" value="CABLES">Cables
<input type="checkbox" name="nombresFamilia[]" value="PCR">PCR
<input type="checkbox" name="nombresFamilia[]" value="POSTES">POSTES
,然后以
的形式获取控制器中的值$params_familia = $this->input->post('nombresFamilia[]');
根据注释编辑
如果要将所有值发送到帖子,请创建复选框数组,例如
<input type="checkbox" name="nombresFamilia[]" value="CABLES" selected>Cables
<input type="checkbox" name="nombresFamilia[]" value="PCR" selected>PCR
<input type="checkbox" name="nombresFamilia[]" value="POSTES" selected>POSTES
然后发布。在您的控制器中,通过
获得这些值$params_familia = $this->input->post('nombresFamilia[]');
您可以在以下视图中使用"助手的多选择"函数:
$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);
echo form_multiselect('shirts[]', $options);
然后在控制器中,使用这样的数组:
print_r($this->input->post('shirts[]'));
希望这会有所帮助。