填充PHP数组中的codeigniter中选择多个的内容



在我的视图中,我有一个表单选择多个框,其中我使用选择下拉列表和一个按钮添加项目。

这是在向其添加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[]'));

希望这会有所帮助。

最新更新