Codeigniter将form_multiselect保存到数据库和set_value

时间:2017-09-23 06:56:34

标签: php codeigniter

我尝试保存一个form_multiselect但它不保存并且值不要选择。我希望你能帮助我。

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

我试试这个

视图

<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');
}

我无法找到错误,因为如果我选择了它就会起作用。但我可以选择更多作为一个选项。

1 个答案:

答案 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');