Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter-输入post方法正在从多选择字段中删除或清空post数据_Php_Codeigniter_Codeigniter 3 - Fatal编程技术网

Php Codeigniter-输入post方法正在从多选择字段中删除或清空post数据

Php Codeigniter-输入post方法正在从多选择字段中删除或清空post数据,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我使用的是Codeigniter 3.0.0版本 当尝试使用$this->input->post()方法访问名为subsecid[]的多选下拉字段的值时,它返回空值。但是当我访问$\u POST['subjectID']时,我可以从subjectID[]字段中看到数组形式的值。即使在旧版本的Codeigniter中,我也能够从post中以数组的形式获取数据。那么,问题可能是什么呢。请告诉我是否有任何配置需要更改 下面是我的控制器功能 protected function rules() {

我使用的是Codeigniter 3.0.0版本

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

下面是我的控制器功能

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));
数组([name]=>sfgfdsgfsd[subjectID]=>)

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

请尝试此项

$this->input->post('subjects[]');
检查配置中的帮助程序

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

我最近刚刚使用了多输入类型数组来工作
使用$this->input->post('subjects')

您可以使用

$this->input->post('subjects');
或者使用php post变量获取数据

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

}
}

最好是在这里发布表单html代码,这样就可以发布正确的答案

尝试使用此
'field'=>'subjectID[]'
而不是验证规则中的
'field'=>'subjectID'
使用var\u dump($this->input->post()) 或
你从url中删除index.php了吗?

试试这个
$this->input->post('subjects')
你能给我看看你的控制器吗?在这个范围内直到3.1.7才有变化,你仍然可以用
$this->input->post('subjects')
试试这个'field'=>'subjectID[],而不是验证规则中的'field'=>'subjectID'。谢谢。它正在工作。是的,当应用程序在2.X上运行时,我很长时间都是这样访问的,但当我升级到framework 3.0.0版本时,我遇到了这个问题。请确认查看页面中的下拉名称“主题[]”