在我看来,我有一个表单选择多个框,我在其中使用选择下拉列表和this之类的按钮添加项目。
这是选择多个框的代码在向其添加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>
提交表单信息后,我想将select multiple中的项目保存到数组中。这是我控制器中的代码。
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”。
我做错了什么?
答案 0 :(得分:0)
复选框命名为数组,下拉列表未命名为数组。在Drop down或&lt;选择&gt;只返回一个选中的值。如果您想获得所选项目的价值。将您的选择元素命名为
<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
然后发帖。在您的Controller中通过
获取这些值$params_familia = $this->input->post('nombresFamilia[]');
答案 1 :(得分:0)
您可以在视图中使用表单助手的多重选择功能,如下所示:
$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[]'));
希望这有帮助。
答案 2 :(得分:0)
你可以预先选择选择的选项,做这样的事情 查看强>
<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>
的 CONTROLLER 强>
$nombresFamilia = $this->input->post('nombresFamilia');
// remove [] in nombresFamilia
echo "<pre>";
var_dump($params_familia);
echo "</pre>";
的产生强>
Array
(
[0] => CABLES
[1] => PCR
[2] => POSTES
)