2017-09-23 113 views
1

我尝试保存一个form_multiselect,但它不保存和值不选择。我希望你能帮助我。Codeigniter保存form_multiselect到数据库和set_value

编辑:它的工作现在,但只有一个选择。我不能选择更多作为一个选项。

我试试这个

视图

<div class="form-group"> 
       <label class="col-sm-2 control-label" for="field-1"> Team</label> 

       <div class="col-sm-4"> 

       <?= form_multiselect('teams_id[]', dd2menu('teams', array('teams_id' => 'title')), set_value('teams_id[]', $item->teams_id), 'class="form-control"') ?> 

       </div> 
</div> 

控制器

public function manage($id = NULL) { 
     $data = array(); 

     if ($id) { 
      $this->{$this->model}->{$this->_primary_key} = $id; 
      $data['item'] = $this->{$this->model}->get(); 
      if (!$data['item']) 
       show_404(); 
     } else { 
      $data['item'] = new Std(); 
     } 


$this->load->library("form_validation"); 
$this->{$this->model}->custom_select = 'users.*, teams.title as teams'; 
$this->{$this->model}->joins = array('teams' => array('teams.teams_id = users.teams_id', 'inner')); 

if ($this->form_validation->run() == FALSE) 
$this->load->view($this->module . '/manage', $data); 

else { 

$this->users_model->teams_id = $this->input->post('teams_id'); 

$this->{$this->model}->save(); 
      redirect('admin/' . $this->module); 
     } 
    } 

型号

class Users_model extends CI_model 
{ 
    public $_table = 'users'; 
    public $_primary_keys = array('user_id'); 
} 

我无法找到的错误,因为它的工作,如果我一个选择。但我可以选择更多作为一个选项。

+0

你可以参考,供大家参考https://stackoverflow.com/questions/16836390/set-multiple-values-as-selected-in-form-multiselect-in-codeigniter此链接 –

+0

我看到这个,但它不适合我。我可以将它保存为单个。但我不能保存2个或更多选项 – Gregor

+0

请发布完整的代码控制器和查看文件。 –

回答

0

如果在NikuNi的其他代码中找到修复程序。

现在它在数据库中保存1或1,2。

控制器

if(is_array($this->input->post('teams_id'))) { 
      $this->{$this->model}->teams_id = join(",", $this->input->post('teams_id')); 
      } else { 
      $this->{$this->model}->teams_id = $this->input->post('teams_id'); 
      } 

$this->form_validation->set_rules('teams_id[]', 'teams_id', 'trim');