Codeigniter - 输入发布方法是从多选字段

时间:2018-02-14 09:21:16

标签: php codeigniter codeigniter-3

  

我正在使用Codeigniter 3.0.0版本

尝试使用subjecID[ ]方法访问名为$this->input->post()的多选下拉字段的值时,返回空值。但是当我访问$_POST['subjectID']时,我可以从subjecID[ ]字段中看到数组形式的值。即使在较旧版本的Codeigniter中,我也可以从帖子中获取数据作为数组。那么,可能是什么问题。请告诉我是否有任何配置需要更改?

以下是我的控制器功能。

protected function rules() {
    $rules = array(
        array(
            'field' => 'name',
            'label' => $this->lang->line("teacher_name"),
            'rules' => 'trim|required|max_length[60]'
        ),
        array(
            'field' => 'subjectID',
            'label' => $this->lang->line("select_subject"),
            'rules' => 'required'
        )
    );
    return $rules;
}

public function add() {
            $this->data['subjects'] = $this->subject_create_m->get_subject();
    if($_POST) {
        $rules = $this->rules();
        $this->form_validation->set_rules($rules);
        if ($this->form_validation->run() == FALSE) {
            $this->data['form_validation'] = validation_errors();
            $this->data["subview"] = "teacher/add";
            $this->load->view('_layout_main', $this->data);
        } else {
            $array = array();
            $array['name'] = $this->input->post("name");
            $array['specialization'] = serialize($this->input->post('subjectID[]'));
            print_r($array);
        }
    } else {
        $this->data["subview"] = "teacher/add";
        $this->load->view('_layout_main', $this->data);
    }

}

以下是我通过使用以下代码打印帖子获得的输出

print_r($this->input->post(NULL, FALSE));

Array ( [name] => sfgfdsgfsd [subjectID] => )

每次验证失败时都会出现此问题。

5 个答案:

答案 0 :(得分:1)

在验证规则中尝试此'field' => 'subjectID[]'而不是'field' => 'subjectID'

答案 1 :(得分:0)

尝试这个

$this->input->post('subjects[]');

检查配置中的助手

$autoload['helper'] = array('form');

答案 2 :(得分:0)

我刚刚使用多个输入类型数组工作 使用$ this-> input-> post(' subject');

答案 3 :(得分:0)

您可以使用

获取所选值的数组
$this->input->post('subjects');

或者您使用php post变量来获取数据

if(isset($_POST[subjects])){
foreach($_POST[subjects]) as $subject){

}
}

Best会在此处发布您的表单html代码,以便发布正确的答案

答案 4 :(得分:0)

使用var_dump($ this-> input-> post()) 要么 您是否从url

中删除了index.php